|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.09.2018, 13:10 | #1 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
Перевод цифр которые соответсвуют символам в кодировке ASCII в бинарный вид с последующей передачей по Serial.
Питон версии 3.5. Система Линукс.
Есть задача по отправке сообщения из 8 байт в формате HEX по com-порту. Если в списке цифр присутствеют цифры, которые соответствуют символам в кодировке ASCII, интерпретатор не переводит их в HEX. |
05.09.2018, 13:12 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
А ваш код где? Проблема в чем?
|
05.09.2018, 13:17 | #3 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
Проблема вот в чем. Есть список из цифр, которые необходимо передать по порту, использую библиотеку serial. И вот если в этом списке присутствуют цифры, которым соответствует символ из кодировки ASCII, то при передаче этого списка на порт, устройство не может считать данный набор байт.
|
05.09.2018, 13:22 | #4 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
вот отрезок кода.
import serial port = serial.Serial('/dev/ttyAMA0', baudrate=19200, stopbits=1, timeout=None) command = [245, 38, 39, 45, 0, 0, 82, 245] port.open() port.write(command) port.close() |
05.09.2018, 13:25 | #5 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
Но если исключить эти цифры из списка устройство работает нормально.
Например если устройству передать по порту список [245, 2, 0, 0, 0, 0, 2, 245] То эту команду оно видит прекрасно и реагирует на нее. |
05.09.2018, 14:02 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Не верится, если честно. Не должно ничего зависеть от диапазона данных. Или Вы дали не весь код. Но скорее всего просто ошибка в команде
|
05.09.2018, 14:15 | #7 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
Сформулирую подругому:
command = bytearray([245, 38, 39, 45, 0, 0, 82, 245]) print(command) bytearray(b"\xf5&\'-\x00\x00R\xf5") >>> Есть необходимость получить bytearray в HEX |
05.09.2018, 14:21 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
https://docs.python.org/3/library/bi...nascii.hexlify или просто hex() в новых версиях
|
05.09.2018, 14:33 | #9 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Вы точнее формулируйте..
Код:
|
05.09.2018, 15:05 | #10 |
Новичок
Джуниор
Регистрация: 05.09.2018
Сообщений: 8
|
[QUOTE=Black Fregat;1748925]Вы точнее формулируйте..
Код:
нам надо получить байтовое представление данной последовательности а не строковое |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти все слова-числа, т.е. такие, которые состоят только из цифр. Известно, что количество цифр в каждом числе не более 9 (девяти | vikichocolate | Помощь студентам | 1 | 21.12.2011 00:12 |
VBA не понимает или не распознает символ №179 по кодировке ASCII. | Lays | Microsoft Office Excel | 10 | 14.12.2010 11:27 |
расшифровать в ASCII потом цифры расшифровать в бинарный код | viorel | Общие вопросы Delphi | 1 | 07.05.2010 14:43 |
Jpeg в бинарный вид | Ilitan | Помощь студентам | 3 | 21.03.2010 00:40 |