Протокол CanHacker (lawicel) описан в документации к приложению CanHacker
Библиотека реализует его не полностью. Поддерживаемые комманды приведены ниже.
Эта команда переключает CAN контроллер из операционного режима в режим сброса. Контроллер более не вовлечен в какое-либо взаимодействие с CAN.
Комманда доступна только в операционном режиме, запущеннос командой O
ранее.
Возвращает: [CR] или [BEL]
Эта комманда переключает CAN controller в режим Только Чтение. Комманда открытия канала (O
) не требуется после исполнения L
.
Используйте C
для возврата в режим сброса.
Возвращает: [CR]
Установить код фильтра. Эта комманда доступна только в режиме сброса.
xxxxxxxx - код в hexadecimal
Значение по-уолчанию после загузки 0x00000000 для приема всех сообщений.
Возвращает: [CR] или [BEL]
Установить маску фильтра. Эта комманда доступна только в режиме сброса.
xxxxxxxx - маска в hexadecimal
Значение по-уолчанию после загузки 0xFFFFFFFF для приема всех сообщений.
Возвращает: [CR] или [BEL]
Серийный номер устройства.
Возвращает: Nxxxx[CR]
xxxx - серийный номер в цифро-алфавитных символах.
Эта комманда переключает CAN контроллер из режима сброса в операциооный режим. Контроллер вовлечен во взаимодействие с CAN. Комманда достуна только после установки скорости коммандой S
ранее или контроллер переведен в режим сброса коммандой C
.
Возвращает: [CR] or [BEL]
Комманда пердает стандартный remote 11 Bit CAN фрейм. Комманда доступна только в операционном режиме после исполнения комманды O
.
iii - идентификатор в hexadecimal (000-7FF)
L - код длины сообщения (0-8)
Возвращает: [CR] или [BEL]
Комманда пердает расширенный remote 29 Bit CAN фрейм. Комманда доступна только в операционном режиме после исполнения комманды O
.
iiiiiiii - идентификатор в hexadecimal (00000000-1FFFFFFF)
L - код длины сообщения (0-8)
Возвращает: [CR] или [BEL]
Эта комманда устанавливает скорость CAN в одно из предопределеных состояний.
Команда доступна после включения или после перевода конроллера в режим сброса командой C
.
Следующие скорости доступны:
S0 - 10Kbps
S1 - 20Kbps
S2 - 50Kbps
S3 - 100Kbps
S4 - 125Kbps
S5 - 250Kbps
S6 - 500Kbps
S7 - 800Kbps
S8 - 1Mbps
Возвращает: [CR] или [BEL]
Комманда пердает стандартный 11 Bit CAN фрейм. Комманда доступна только в операционном режиме после исполнения комманды O
.
iii - идентификатор в hexadecimal (000-7FF)
L - код длины сообщения (0-8)
DD - Байт данных в hexadecimal (00-FF). Количество байт должно соответствовать коду длины сообщения
Возвращает: [CR] или [BEL]
Комманда пердает расширенный 29 Bit CAN фрейм. Комманда доступна только в операционном режиме после исполнения комманды O
.
iiiiiiii - идентификатор в hexadecimal (00000000-1FFFFFFF)
L - код длины сообщения (0-8)
DD - Байт данных в hexadecimal (00-FF). Количество байт должно соответствовать коду длины сообщения
Возвращает: [CR] или [BEL]
Чтение версии программного обеспечения и платы
Возвращает: Vhhff[CR]
hh - версия платы
ff - версия программного обеспечения
Чтение подробной версии программного обеспечения
Возвращает: vmami[CR]
ma - мажорный номер версии
mi - минорный номер версии
Эта комманда включает или выключает метки времени в получаемых сообщениях. По-умолчнию - выключено.
Если метки времени включены, получаемые сообщения содержат дополнительные 2 байта на конце, в которых закодирована временная метка в миллисекнудах.
Счетчик времени начинается с 0x0000 и переполняется на 0xEA5F, что эквивалентно 59999мс.
Каждый инкремент временной метки соответствует 1мс из 60000мс окна.
Все вхоядщие фреймы передаются сразу после получения, опционально с временной меткой.
Опрос не требуется. Отправляются в следующем формате:
11 bit ID фрейм
tiiiLDDDDDDDDDDDDDDDD[ssss][CR]
11 bit ID Remote фрейм
riiiL[ssss][CR]
29 bit ID фрейм
TiiiiiiiiLDDDDDDDDDDDDDDDD[ssss][CR]
29 bit ID Remote фрейм
RiiiiiiiiL[ssss][CR]
r - идентификатор для Remote 11 bit фрейма
R - идентификатор для Remote 29 bit фрейма
t - идентификатор для 11 bit фрейма
T - идентификатор для 29 bit фрейма
i - идентификатор (000-7FF) или (00000000-1FFFFFFF)
L - код длины (0-8)
DD - байты данных (00-FF)
ssss - опциональная метка времени (0000-EA5F)