本文整理汇总了Python中bus.Bus.write方法的典型用法代码示例。如果您正苦于以下问题:Python Bus.write方法的具体用法?Python Bus.write怎么用?Python Bus.write使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bus.Bus
的用法示例。
在下文中一共展示了Bus.write方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Bus
# 需要导入模块: from bus import Bus [as 别名]
# 或者: from bus.Bus import write [as 别名]
#!/usr/bin/env python
#
# Write the memory pak's 32k SRAM from a binary file specified on the command line.
#
# --Micah Dowty <[email protected]>
#
from bus import Bus
import sys
b = Bus()
if b.probe() != "memory":
sys.exit(1)
f = open(sys.argv[1], "rb")
addr = 0x0000
while addr < 0x8000:
sys.stdout.write("\r0x%04X (%.02f%%)" % (addr, addr * 100.0 / 0x8000))
b.write(addr, f.read(32))
addr += 32
sys.stdout.write("\n")
### The End ###
示例2: __init__
# 需要导入模块: from bus import Bus [as 别名]
# 或者: from bus.Bus import write [as 别名]
class BioloidController:
def __init__(self, useLogger = False):
self.id = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
self.pose = [512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512]
self.nextPose = [512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512]
self.speed = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
self.interpolating = False
self.playing = False
self.servoCount = 12
self.lastFrame = pyb.millis()
self.port = UART_Port(1, 1000000)
self.bus = Bus(self.port, show=Bus.SHOW_PACKETS)
# Bus.SHOW_NONE
# Bus.SHOW_COMMANDS
# Bus.SHOW_PACKETS
if useLogger:
self.logger = Logger('sync_log.txt')
else:
self.logger = None
# Load a pose into nextPose
def loadPose(self, poseArray):
for i in range(self.servoCount):
self.nextPose[i] = (poseArray[i]) # << BIOLOID_SHIFT)
#print ('loadPose[', self.id[i], '] = ', self.nextPose[i])
def isLogging(self):
return self.logger is not None
# read the current robot's pose
def readPose(self):
for i in range(self.servoCount):
self.pose[i] = (self.readTwoByteRegister(self.id[i], AX_GOAL_POSITION)) # << BIOLOID_SHIFT)
#print ('readPose[', self.id[i], '] = ', self.pose[i])
pyb.delay(25)
def writePose(self):
values = []
logging = self.isLogging()
if logging:
logValues = []
for i in range(self.servoCount):
poseValue = int(self.pose[i])
values.append(struct.pack('<H', poseValue))
if logging:
logValues.append(poseValue)
self.bus.sync_write(self.id, AX_GOAL_POSITION, values)
if logging:
self.logger.log(logValues)
def slowMoveServoTo(self, deviceId, targetPosition, speed = SLOW_SERVO_MOVE_SPEED, scanFunction = None):
oldSpeed = self.readTwoByteRegister(deviceId, AX_MOVING_SPEED)
currentPosition = self.readTwoByteRegister(deviceId, AX_PRESENT_POSITION)
self.writeTwoByteRegister(deviceId, AX_MOVING_SPEED, speed)
self.writeTwoByteRegister(deviceId, AX_GOAL_POSITION, targetPosition)
done = False
scanCount = 0
lastPosition = 0
startTime = pyb.millis()
while abs(currentPosition - targetPosition) > 5:
currentPosition = self.readTwoByteRegister(deviceId, AX_PRESENT_POSITION)
if scanFunction is not None:
if currentPosition != lastPosition:
scanCount += 1
lastPosition = currentPosition
scanFunction(currentPosition, scanCount)
pyb.delay(1)
self.writeTwoByteRegister(deviceId, AX_MOVING_SPEED, oldSpeed)
if scanFunction is not None:
scanFunction(targetPosition, scanCount + 1)
print("Elapsed Time: %d" % (pyb.millis() - startTime))
def rampServoTo(self, deviceId, targetPosition):
currentPosition = self.readTwoByteRegister(deviceId, AX_PRESENT_POSITION) # present position
if targetPosition > currentPosition:
stepDelta = 1
stepAccel = 2
comparison = lambda: targetPosition > (currentPosition + stepDelta)
else:
stepDelta = -1
stepAccel = -2
comparison = lambda: currentPosition > (targetPosition - stepDelta)
while comparison():
movePosition = currentPosition + stepDelta
stepDelta += stepAccel
self.setPosition(deviceId, movePosition)
currentPosition = self.readTwoByteRegister(deviceId, AX_PRESENT_POSITION) # present position
pyb.delay(25)
self.setPosition(deviceId, targetPosition)
def setPosition(self, deviceId, position):
self.writeTwoByteRegister(deviceId, AX_GOAL_POSITION, position)
def writeData(self, deviceId, controlTableIndex, byteData):
try:
result = self.bus.write(deviceId, controlTableIndex, byteData)
except BusError as ex:
if ex.get_error_code() == ErrorCode.CHECKSUM:
print ("CHECKSUM Error - retrying...")
#.........这里部分代码省略.........