Появилась необходимость написать приложение которое может общаться с некоторым устройством, оно имеет интерфейс rs485 работает по протоколу modbus rtu. Честно признаюсь опыта работы с регистрами, байтами нет. Поэтому прошу помощи.
Инженер железки кинул описание:
BaudRate = 9600; DataBits = 8; Parity = None; StopBits = Two;
Устройство поставляется с установленным адресом 0х01 . Регистры значения веса находятся в регистрах по адресу 0000h и 0001h .
Пример чтения регистров : запрос - 01 03 00 00 00 02 C4 0B
Где: Первый байт - номер устройства (адрес) Второй байт - номер функции (03 = чтение регистров) Третий и четвертый - адрес начала регистров (0000) Пятый и шестой - количество регистров (0002) Последние два байта - контрольная сумма.
ответ - 01 03 04 00 00 00 4C FB C6
Где: Первый и второй байты повторяют запрос Третий байт - количество байт данных (4 байта) Данные: 00 00 00 4C = 76 у.е. Последние два байта - контрольная сумма.
Раз в 60 мс, приложение должно опрашивать устройство и возвращать значение на экран. Как лучше реализовать? Запрос в отдельном потоке? Или смысла нет?
Мне нужно отправить команду на чтение веса, я правильно понимаю, мне нужно сделать так?
serial = new SerialPort("COM3", 9600);
serial.Handshake = System.IO.Ports.Handshake.None;
serial.Parity = Parity.None;
serial.DataBits = 8;
serial.StopBits = StopBits.Two;
serial.Open();
serial.Write(new byte[] { 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x0B }, 0, 8);
serial.Close();
Прочитать ответ с устройства. Здесь больше мне не понятно. Как получить ответ и как его интерпретировать? распарсить байты
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нашёл код - который имеет более 60 положительных оценок от пользователей - он делает скриншот элемента, но не как не могу его подвести под поледние...
Так он дает первое совпадениеА как вывести, к примеру, второе или третье без цикла и page
Всем привет! Пишу приложение на react native и мне нужно , что бы граница с лева была через элемент , а не у каждогоКак реализовать?