2015-06-29 1 views
-4

После Java кода создает сообщение, я могу написать на Arduino последовательный порт для управления роботизированной рукой:мне нужна помощь преобразования кусок Java в Python

public static byte[] uArmMessage(short armRot, short armStr, short armHt, short handAng, boolean ctlData){ 
    byte[] msg ={(byte)0xFF,(byte)0xAA,(byte)((armRot>>8) 0xFF), 
     (byte)(armRot&0xFF),(byte)((armStr>>8)&0xFF), 
     (byte)(armStr&0xFF),(byte)((armHt>>8)&0xFF), 
     (byte)(armHt&0xFF),(byte)((handAng>>8)&0xFF), 
     (byte)(handAng&0xFF),(byte)(ctlData ? 1 : 2)}; 
    return msg; 
} 

мне нужна помощь в написании этой функции в Python. Если бы кто-нибудь мог объяснить мне, как именно я получаю выход из этой функции в arduino, я бы тоже очень признателен!

Если это какая-либо помощь, у меня есть PDF, объясняющий используемый протокол связи.

Если это не место для такого рода вопросов, может кто-то перенаправить меня куда-нибудь более подходящим?

+2

Не выглядит просто мне. И SO не является службой написания кода. –

+0

Вы должны посмотреть [здесь] (https://stackoverflow.com/questions/8730927/convert-python-long-int-to-fixed-size-byte-array) – CoryKramer

ответ

1
msg =[0xFF,0xAA,((armRot>>8)& 0xFF), 
     (armRot&0xFF),((armStr>>8)&0xFF), 
     (armStr&0xFF),((armHt>>8)&0xFF), 
     (armHt&0xFF),((handAng>>8)&0xFF), 
     (handAng&0xFF),(1 if ctlData else 2)]; 

s = serial.Serial("COM5",9600) 
s.write("".join(map(chr,msg))) 

в основном это был просто вопрос удаления всех (Byte) и replaceing {} с [] ....