![]() |
|
|
#161 | |
|
Senior Member
|
Там числа нужно было вводить в десятичном представлении по три разряда на число, т.е. 0x85 = 113.
Вот новый вариант, где можно hex'ами побайтно писать: Код:
string="010500060001"
cnt=${#string}
let 'cnt -= 2'
crc=0xFFFF
for i in `seq 0 2 $cnt`; do
crc=$(( crc ^ 0x${string:$i:2} ))
for j in `seq 0 7`; do
c=$(( crc >> 1 ))
if [ $(( crc & 1 )) = 1 ]; then
let 'c ^= 0xA001'
fi
crc=$c
done
done
printf "0x%04X" "$crc"
echo
Цитата:
__________________
Россия навсегда! Последний раз редактировалось uni; 19.06.2014 в 23:24. |
|
|
|
|
|
|
#162 |
|
Senior Member
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо большое!
Действительно я затупил. Теперь все работает ![]() Придется модуль переписывать, что бы от javascript избавиться |
|
|
|
|
|
#163 |
|
Senior Member
|
Эт точно
__________________
Россия навсегда! |
|
|
|
|
|
#164 |
|
Junior Member
Регистрация: 02.01.2016
Сообщений: 2
Вес репутации: 0 ![]() |
Добрый день. Я только начинаю осваивать такую сложную тему как OpenHab и Умный дом. Пока нахожусь на стадии теории. Нужен Ваш совет. Задумка такова: OpenHab установлен на Raspberry Pi, к ней подключена Arduino UNO, к Arduino UNO подключены реле и несколько Arduino Pro Mini, а к ним датчики и выключатели. (во вложении схема для наглядности; реле, выключателей и датчиков будет гораздо больше чем на схеме). Основная программа будет стоять на Arduino Uno, OpenHab будет использоваться только для связи с ПК и смартфоном. (если вдруг откажет Raspberry Pi, то всё будет продолжать работать и дальше, только пропадёт связь с ПК и смартфоном). Вопрос: какой протокол использовать между Raspberry Pi и Arduino UNO, Arduino UNO и Arduino ProMini. (на схеме нарисовано штриховыми линиями). При чём протокол должен быть "двухсторонним", т. е. если сработал датчик дыма, то Arduino Pro Mini сама посылает сигнал на Arduino UNO, а не ждёт от неё запроса. А Arduino UNO сама отправляет сигнал на Raspberry Pi о случившимся событии, так же не дожидаясь запроса от Raspberry Pi. Прошу Вас не оставляйте просьбу без ответа. За ранее Спасибо. |
|
|
|
|
|
#165 |
|
Senior Member
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 0 ![]() |
протокол rs-232, по приему байта срабатывает прерывание, кэшируете принятые данные, анализируете принятый код.
всю кучу девайсов соединить в единую двух-проводную сеть rs-232. первый байт что нибудь из служебных символов, далее кому посылка из двух байт, байт типа информации, байты инфы, завершающий служебный байт. все девайсы слушают сеть только в перывании которое срабатывает по приему, по приему байта смотрят кому посылка и что делать. пока нет данных занимаються анализом датчиков. |
|
|
|
|
|
#166 |
|
Junior Member
Регистрация: 02.01.2016
Сообщений: 2
Вес репутации: 0 ![]() |
Alex19279 Большое спасибо за совет.
|
|
|
|
|
|
#167 |
|
Junior Member
Регистрация: 07.07.2017
Сообщений: 1
Вес репутации: 0 ![]() |
Потребовался в моём проекте шлюз modbusgw.
Спасибо автору за него, вот только быстрее 57600 не ворочается, а мне надо 921600. Пришлось разобраться где, что, как компилировать. Выкладываю собраный пакет. В исходниках поменял тип данных для хранения скорости и добавил в список все возможные для cfsetspeed. Только в своём проекте столкнулся с необходимостью отключить использование CTS и RTS при инициализации порта, пока не нашел как. Может кто подскажет. |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|