Отправка команд на лазерный гравер JPT через USB
купил я значит лазерный гравер JPT m7 30W плата bjjcz, у которого драйвера я ставил с флешки в комплекте, и также было ПО EzCad2. У меня есть программка для печати на принтере написанная на C#, и хочется чтобы гравировка тоже была возможна через мою программу, хотелось бы просто принять текст строку на входе и выгравировать эту строку на металле например, но проблема в том что я не могу отправить команду на гравер тк, COM порта в нем нет, только USB порт, + кастомные дрова следовательно библиотек в C# на этот гравер нет. Помогите пожалуйста связаться с гравером через драйвера (lmcv2u - название дров) и отправить туда команду сокрее всего на GCODE.
Ответы (1 шт):
Ломать проприетарный код тут врядле кто станет, да и запрещено это правилами сообщества. Да и ломать драйвер совсем гадкое дело даже для тех людей кто собственно профисионально занимаеться взломом/отладкой драйверов. Потому что те кто ломают драйвера либо это делают для поддержки крутых легаси устройств, либо для взлома дорогого ПО или игр с защитой по железу.
Как вариант, могу предложить например сломать саму программу EzCAD 2. Простой вариант это отправка пользовательских сообщений (SendMessage) и счтывание текста (GetWindowText). Сложный вариант - посмотреть видосов по CheatEngine и напрямую читать/писать память приложения.
Если ты прям готов к хардкору и хочешь реально написать порт к драйверу. То это намного проще сделать опять-же через EzCAD, просматривая через ту-же Ghidra или IDA Pro что она делает с драйвером. Куда звонит, что вызывает, какие параметры.
Ибо USB драйвер может работать как любое из перечисленных утройств
- Виртуальный TTL порт. (то что ты называешь COM портом)
- Виртуальный дисковый накопитель.
- Виртуальный сетевой драйвер.
- Виртуальный стековый драйвер. (отеправка/приём простых кодовых комманд)
Причём например некоторые извращенцы объеденяют возможные варианты. Так как USB может на лету менять тип и количество устройств. Как с протоколом FTP - где 21й порт для комманд, а по запросу он отрывает порт для файлов.
Если реального TTL нету, первое на что я бы обратил внимание это - NamedPipes это так называемые базовые устройства ввода-вывода у которых есть STDIN/STDOUT/STDERR если твоя программа открывает файл под названием похожим на \\\\.\\pipe\\SampleDriver
то в 99% случаев это и есть протокол общения клиенского приложения с драйвером.
DiskMon for Windows v2.02 тебе в помощь.
Кстати винда ещё позволяет использовать пайпы USB в так называемом закрытом режиме, USB Pipes что счастья тебе не добавит вовсе.