def test_equality(self): p = packet.InstructionPacket(4, pt.WRITE_DATA, [pt.ANGLE_LIMITS.addr, 34, 0, 68, 0]) p2 = packet.InstructionPacket(4, pt.WRITE_DATA, [pt.ANGLE_LIMITS.addr, 34, 0, 68, 0]) self.assertEqual(p.data, p2.data) self.assertEqual(p, p2) self.assertTrue(not p != p2)
def test_comexc(self): #temp = tempfile.TemporaryFile() p = packet.InstructionPacket(4, pt.WRITE_DATA, [pt.ANGLE_LIMITS.addr, 34, 0, 68, 0]) exc = serialcom.CommunicationError('bla', p, p) s = pickle.dumps(exc) exc2 = pickle.loads(s) self.assertEqual(exc, exc2) self.assertEqual(exc.inst_packet, exc2.inst_packet)
from __future__ import print_function, division import time import sys from pydyn.refs import protocol as pt from pydyn.ios.serialio import serialio, serialcom, packet from pydyn import color sio = serialio.Serial(device_type='USB2Serial', latency=1, timeout=2) print('I/O open on {}{}{}'.format(color.cyan, sio, color.end)) mcom = serialcom.SerialCom(sio) detected = [mid for mid in range(0, 253) if mcom.ping(mid)] print('detected: {}'.format(detected)) assert len(detected) == 1 mid = detected[0] print('You are about to RESET the motor with id {}.'.format(mid)) print('Are you sure (y/N): ', end='') s = raw_input() if s != 'y': print('Exiting without changes') sys.exit() print('Reseting...') reset_packet = packet.InstructionPacket(mid, pt.RESET) mcom._send_packet(reset_packet) time.sleep(1.0) print('Done.')
def test_write_packet(self): p = packet.InstructionPacket(4, pt.WRITE_DATA, [pt.ANGLE_LIMITS.addr, 34, 0, 68, 0]) self.assertEqual(list(p.data), [255, 255, 4, 7, 3, 6, 34, 0, 68, 0, 133])
def test_ping_packet(self): p = packet.InstructionPacket(3, pt.PING) self.assertEqual(p.mid, 3) self.assertEqual(p.instruction, pt.PING) self.assertEqual(p.length, len(p.params) + 2) self.assertTrue(len(p) == p.length + 4 == 6)