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)


Байт:STMODECTRRESCHCMDFMTD0D1D2D3ID0ID1ID2ID3CRCSP
Передача (17 байт):171200015000000000crc172

Описание байтов команды тут.

В нашем случае номер канала 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 нажмите сервисную кнопку (светодиодный индикатор замигает).

 
7. Отправьте сформированный пакет байтов на COM-порт.
Светодиодный индикатор SUF-1-300 перестанет мигать, если привязка успешно осуществилась.
 
 
8. Далее можно посылать устройству другие команды CMD. Для этого необходимо заменить значение байта CMD в соответствии с номером команды, подсчитать и заменить значение CRC. Примеры команд в подсказке.

Включить:


(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)


Байт:STMODECTRRESCHCMDFMTD0D1D2D3ID0ID1ID2ID3CRCSP
Передача (17 байт):17120002000000000175172

Выключить:

 

(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)

Байт:STMODECTRRESCHCMDFMTD0D1D2D3ID0ID1ID2ID3CRCSP
Передача (17 байт):17120000000000000173172
 

Переключить:

 

(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)

Байт:STMODECTRRESCHCMDFMTD0D1D2D3ID0ID1ID2ID3CRCSP
Передача (17 байт):17120004000000000177172