Здравствуйте! Купил контроллер NVEM Mach3 и хотел бы использовать его без привязки к Mach, например от своей программы или от LinuxCNC. Решил посмотреть как общаются Mach и NVEM. В общем кое что-то удалось выяснить но еще многое не понятно. Чувствую, один я не справлюсь и прошу вас помочь. Высказывайте любые идеи, неизвестно что окажется верным, будем пробовать. Может быть вы знаете что-то. Причем тут скорее поможет математик чем программист. В общем вот что сделано и удалось узнать.
Подлючение
Mach3 с плагином NVEM запущен на ноуте с IP адресом 192.168.31.2. "Эмулятор" NVEM на стационарном компе с адресом 192.168.31.100.
Сначала я запустил Wireshark сниффер и посмотрел процедуру связи с настоящим NVEM. Файл прилагаю.
В начале все понятно. NVEM подключенный в сеть посылает раз в секунду пакеты UDP на широковещание 192.168.31.255 по порту 888 такого содержания "6162000000000001FCCF" назовем его NOL-сообщение (NVEM On Line) . Между посылками NVEM слушает пакеты UDP на порту 890 с содержанием "6162020000000001" назовем его MOL (Mach On Line).
Mach при включении слушает пакеты NOL, узнает IP NVEM'a и высылает пакет MOL. NVEM принимает MOL, узнает IP адрес Mach'a и иницирует соединение TCP c сервером Mach на порту 1888 (Mach-сервер, NVEM - клиент)
Работа.
Первым пакетом по TCP приходит от Mach настройки. Выяснил я это изменяя параметры в Mach и подключая заново. Пакет выглядит так:
Пакет (для просмотра содержимого нажмите на ссылку)00:cc:0e:40:06:cc:03:02:00:00:
00:cc:04:02:00:00:
00:cc:05:00:01:06:01:
00:cc:06:00:00:08:00:00:00:08:00:00:00:a8:02:00:00:08:00:00:00:08:00:00:00:08:
00:cc:14:00:01:00:00:00:01:00:00:00:02:00:00:00:01:00:00:00:01:00:00:00:01:00:
00:cc:13:00:00:08:00:00:00:08:00:00:00:a8:02:00:00:08:00:00:00:08:00:00:00:08:
00:cc:07:31:08:00:00:31:08:00:00:0a:57:00:00:31:08:00:00:31:08:00:00:31:08:00:00:
ee:dd:aa:bb
Выяснил что байты "00ссXX" - (где XX число) - это регистры для настроек. Например регистр "00cc01" хранит параметры инвертирования осей, полный запрос выглядит так: "00cc01 01cc050001060100" - где 01 (первый байт после адреса регистра) это флаги инвертирования остальные байт не изменяются.
Т.е. Сначала идут 2 байта "00cc" - флаг начала регистра, потом один байт - адрес регистра, потом идут данные разных длин.
Причем, регистры 05 и 06 могут быть длиннее или короче на один байт. Потому разбивка пакета усложняется.
Таким образом я создал список возможным регистров и длины данных для них:
Регистры (для просмотра содержимого нажмите на ссылку)Пишу в Python'e потому такой вид. Первая колонка адреса, вторая - длины в байтах, третья - какое-то значение, не факт, что дефолтное
bytes.fromhex('00CC01') : [3, bytes.fromhex('000000')],
bytes.fromhex('00CC02') : [3, bytes.fromhex('000000')],
bytes.fromhex('00CC03') : [3, bytes.fromhex('000000')],
bytes.fromhex('00CC04') : [3, bytes.fromhex('020000')],
bytes.fromhex('00CC05') : [4, bytes.fromhex('00010601')],
bytes.fromhex('00CC06') : [23, bytes.fromhex('00000000000000000000a8020000000000000000000000')],
bytes.fromhex('00CC07') : [24, bytes.fromhex('31080000310800000a570000310800003108000031080000')],
bytes.fromhex('00CC09') : [3, bytes.fromhex('020000')],
bytes.fromhex('00CC0A') : [3, bytes.fromhex('000000')],
bytes.fromhex('00CC0B') : [3, bytes.fromhex('200000')],
bytes.fromhex('00CC0C') : [23, bytes.fromhex('7f0000000000000071ac00000000000000000000000000')],
bytes.fromhex('00CC0E') : [7, bytes.fromhex('4006cc03020000')],
bytes.fromhex('00CC10') : [0, bytes.fromhex('')],
bytes.fromhex('00CC13') : [23, bytes.fromhex('00000800000008000000a8020000080000000800000008')],
bytes.fromhex('00CC14') : [23, bytes.fromhex('0001000000010000000200000001000000010000000100')],
bytes.fromhex('00CC18') : [0, bytes.fromhex('')],
bytes.fromhex('00CC15') : [2, bytes.fromhex('0201')],
bytes.fromhex('00CC16') : [1, bytes.fromhex('02')],
bytes.fromhex('00CC17') : [1, bytes.fromhex('01')]
Далее, выяснил что последовательность ee:dd:aa:bb - это разделитель, назовем EOL (End Of Line), обычно он приходит в конце сообщения но не всегда! т.е. В конце любого сообщения от Mach находится EOL. В сообщениях от NVEM никогда. EOL также встречается в пакетах движения как разделитель.
Бывает, что в пакете содержится: "
00сс0a 00cc05000000" - т.е. Идут адрес регистра но без данных, затем идут уже другой регистр или конец строки. Предполагаю, что это означает "обнулить регистр".
Также, можно заметить в файле NVEM starting, что NVEM отправляет пакеты следующего содержания:
(для просмотра содержимого нажмите на ссылку)61:62:03:01:cc:08:ff:1f:00:
00:cc:0a:00:00:00:
00:cc:0c:7f:00:00:00:00:00:00:00:71:ac:00:00:00:00:00:00:00:00:00:00:00:00:00:
00:cc:09:02:00:00:
00:cc:10:
00:cc:05:00:01:06:01:
00:cc:0b:20:00:00
61:62:03:01:cc:08:ff:1f:00: - не меняется, затем идут значения регистров, думаю это координаты и что-то еще, например состояния входов.
В эмуляторе я отправляю такое сообщение через раз, так как не знаю когда его нужно отправлять.
Пакеты движения. Вот тут я пока ничего не понимаю. И хочу показать здесь, может у кого будут идеи. Я не совсем понимаю как вообще устроена совместная работа Mach и NVEM.
Я писал команды на движения в Mach, например G1 X10 и получал такие пакеты.
Осторожно! Под спойлером длинные пакеты. Там где написаны G- коды это просто комментарий, этого в пакете не было!
Пакеты движения (для просмотра содержимого нажмите на ссылку)#G1 X10
# 01:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb
#G1 Y1
# 01:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb
#01
# XX XX YY YY ZZ ZZ AA AA BB BB CC CC - Предположение!!!
#G1 Z0.01
# 01:
# 00:00:00:00:ff:ff:00:00:00:00:00:00:00:00:
# 00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# 00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 00:cc:05:00:01:06:01:00:ee:dd:aa:bb:
# 01:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:ee:dd:aa:bb:
# 01:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:
# ff:ff:00:00:00:00:00:00:00:00:00:00
Я разбил пакеты на строки по не нулевому разделителю просто так. Я не знаю как именно разделять эти пакеты.
Вот что я думаю, но это только предположение! : сначала идет байт 01 означающий команду на движение
затем я заметил, что следующая единица смещается в зависимости от оси по которой я двигал.
Таким образом, можно предположить что пакет имеет такую структуру: 01 XX XX YY YY ZZ ZZ AA AA BB BB CC CC Но что будут означать числа на этих местах мне не ясно.
Есть идея, что сообщение это кадр в котором записаны значения вектора в пространстве для всех шести осей... Дальше пока не знаю.
Прилагаю скриптик на Python'e для эмуляции NVEM. Правда при подключении Mach почему-то не пишет "NVEM connected" однако, соединение есть.
Если кому-то интересно, вы могли бы помочь выяснить какой регистр за какую настройку отвечает. Просто меняя настройку в Mach и смотря какой регистр изменится.