Python Урок 1. Привязка устройства nooLite-F к MTRF-64-USB
1. Вставьте MTRF-64-USB в разъем USB компьютера.
При первом подключении автоматически установятся драйвера, и появится виртуальный COM-порт.
Если драйвера не обнаружены - установите их вручную, скачав с сайта http://www.ftdichip.com/FTDrivers.htm.
2. Установите Python, библиотеки serial и pyserial. Запустите IDE PyCharm.
Обновлено. Библиотека serial не требуется, ее лучше деинсталлировать.
3. Создайте проект и файл Python.
File → New Project
File → New → Python File
4. Добавьте в проект модули для работы с Serial Port (serial и pyserial).
Обновлено. Библиотека serial не требуется, ее лучше деинсталлировать.
File → Settings → Project Interpreter
5. Сформируйте пакет для команды Bind - Привязать (CMD=15, канал CH=0).
(ST= 171; MODE = 2; CTR = 0; RES = 0; CH = 0; CMD = 15; FMT = 0; D0= 0; D1 = 1; D2 = 0; D3 = 0; ID0 = 0; ID1 = 0; ID2 = 0; ID3 = 0; CRC = crc; SP = 172)
Байт: | ST | MODE | CTR | RES | CH | CMD | FMT | D0 | D1 | D2 | D3 | ID0 | ID1 | ID2 | ID3 | CRC | SP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Передача (17 байт): | 171 | 2 | 0 | 0 | 0 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | crc | 172 |
Описание байтов команды тут.
В нашем случае номер канала 0 (у адаптера 64 канала: от 0 до 63). Подсчитаем CRC: младший байт от суммы значений от ST до ID3
CRC = 171 + 2 + 0 +0 + 0 + 15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 188. (Число не превышает 255, старший байт отсутствует).
Например, если CRC получится равным 260, то в двоичном виде 260 = 1 0000 0100. Младшим байтом от числа являются последние 8 разрядов справа, а именно 0000 0100, что равно 4 в десятичном виде.
Пример кода Python в подсказке.
# Подключение модуля serial
import serial
port = serial.Serial(port='COM8', baudrate=9600,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS)
# (5.) Команда привязки для устройства nooLite-F
на нулевой канал
# Подробнее по ссылке http://lnnk.in/@noo
package = bytearray([171, 2, 0, 0, 0, 15, 0, 0,
0, 0, 0, 0, 0, 0, 0, 188, 172])
c = port.write(package)
# Подключение модуля serial
import serial
port = serial.Serial(port='COM8', baudrate=9600, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)# (5.) Команда привязки для устройства nooLite-F на нулевой канал# Подробнее по ссылке http://lnnk.in/@noopackage = bytearray([171, 2, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 172])c = port.write(package)
Найти имя порта подключенного адаптера MTRF-64-USB можно в Диспетчере устройств
6. На подключенном к сети SUF-1-300 нажмите сервисную кнопку (светодиодный индикатор замигает).
Включить:
(ST= 171; MODE = 2; CTR = 0; RES = 0; CH = 0; CMD = 2; FMT = 0; D0= 0; D1 = 0; D2 = 0; D3 = 0; ID0 = 0; ID1 = 0; ID2 = 0; ID3 = 0; CRC = 175; SP = 172)
Байт: | ST | MODE | CTR | RES | CH | CMD | FMT | D0 | D1 | D2 | D3 | ID0 | ID1 | ID2 | ID3 | CRC | SP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Передача (17 байт): | 171 | 2 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 175 | 172 |
Выключить:
(ST= 171; MODE = 2; CTR = 0; RES = 0; CH = 0; CMD = 0; FMT = 0; D0= 0; D1 = 0; D2 = 0; D3 = 0; ID0 = 0; ID1 = 0; ID2 = 0; ID3 = 0; CRC = 173; SP = 172)
Байт: | ST | MODE | CTR | RES | CH | CMD | FMT | D0 | D1 | D2 | D3 | ID0 | ID1 | ID2 | ID3 | CRC | SP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Передача (17 байт): | 171 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 173 | 172 |
Переключить:
(ST= 171; MODE = 2; CTR = 0; RES = 0; CH = 0; CMD = 4; FMT = 0; D0= 0; D1 = 0; D2 = 0; D3 = 0; ID0 = 0; ID1 = 0; ID2 = 0; ID3 = 0; CRC = 177; SP = 172)
Байт: | ST | MODE | CTR | RES | CH | CMD | FMT | D0 | D1 | D2 | D3 | ID0 | ID1 | ID2 | ID3 | CRC | SP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Передача (17 байт): | 171 | 2 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 177 | 172 |