|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
||||||||||||||||
Подключение к COM - порту13.01.2017, 15:56. Показов 5330. Ответов 22
Метки нет (Все метки)
Добрый день, делаю подключение платы к программе на c#, общение должно происходить по RS-485, по протоколу WAKE.
Плата работает правильно(проверял через программу WakeUp!, все команды понимает все нормально), авторы протокола WAKE дали в открытый доступ dll для работы с платой по их протоколу но она написана на С++, я делаю вот такой импорт функций из dll
bool AccessCOM(char *P) - функция проверяет доступность порта. В качестве параметра передается имя порта (например, "COM1"). Возвращает true в случае доступности порта. bool OpenCOM(char *P, DWORD baud) - функция открывает порт. В качестве параметров передаются имя порта (например, "COM1") и скорость в бодах, которая может принимать одно из стандартных значений (например, 115200). Возвращает true в случае успешного выполнения. Функция устанавливает на линии DTR уровень -12В, а на линии RTS уровень +12В. Пытаюсь проверить порт на доступность функцией AccessCOM и она возвращает True, то есть с портом все нормально и можно подключаться, но когда я выполняю функцию OpenCOM то мне возвращается False, помогите, не могу понять что делаю не так
0
|
||||||||||||||||
| 13.01.2017, 15:56 | |
|
Ответы с готовыми решениями:
22
Подключение к порту с паролем Автоматическое подключение к com порту
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 13.01.2017, 16:16 | |
|
IIiKoBiT, что делает их библиотека? Если спецификация протокола известна, может проще написать программу используя стандартный SerialPort?
0
|
|
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
||||||
| 13.01.2017, 17:15 [ТС] | ||||||
|
http://www.digit-el.com/files/open/wake/wake.html - вот спецификация протокола, я пытался сделать как вы говорите, подключение вроде проходит, а вот как отправить правильно пакет я не совсем понял
Вот одна из команд которые понимает плата Плата автоматики. Базовый адрес платы автоматики на шине RS-485 - 0x50. Команда GET_STATUS (uint8_t)0x14 - отдается общий статус пружин - 32 байта, первые 16 байт(128 бит) - байты активности пружин(1 - включено, 0 - выключено), вторые 16 байт(128 бит) - биты ошибок в канале(1 - ошибка, 0 - нет ошибки) Пример команды - C0 D0 14 CRC-8. Пытался я отправить вот так
Я в пакет не ложу CRC-8 по скольку еще не совсем понял как получить это, но в любом случае даже если пакет не правильный плата мне должна же вернуть ошибку, но этого не происходит. Вот по этому я и решил воспользоваться их библиотекой.
0
|
||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||||||
| 13.01.2017, 17:19 | ||||||
|
IIiKoBiT,
0
|
||||||
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 17:21 [ТС] | |
|
Ничего не изменилось.
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 13.01.2017, 17:22 | |
|
IIiKoBiT, код?
0
|
|
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
||||||
| 13.01.2017, 17:32 [ТС] | ||||||
0
|
||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 13.01.2017, 17:44 | |
|
IIiKoBiT, настройки порта точно такие? dtr зачем включен?
В пакете отсутствует байт количества данных.
0
|
|
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 17:53 [ТС] | |
|
Не помогает
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 13.01.2017, 17:54 | |
|
IIiKoBiT, точку останова поставь в обработчике события и попробуй ещё раз
0
|
|
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 17:59 [ТС] | |
|
После того как отправляется пакет(Ну если он отправляется, никаких ошибок и тд нету), в обработчик _serialPort_DataReceived оно не попадает
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 13.01.2017, 18:01 | |
|
IIiKoBiT, ну значит железка ничего не отвечает. Скорость обмена точно 57600? По спецификации может быть любая от 300 до 115200.
0
|
|
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 18:07 [ТС] | |
|
Надо именно 57600, так сказали люди которые делали железку и в проверочной программе WakeUp!, все работает на 57600
0
|
|
|
|
||
| 13.01.2017, 18:08 | ||
|
0
|
||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 13.01.2017, 18:13 | ||
|
IIiKoBiT, если честно описание протокола по ссылке дурацкое, особенно тут:
Добавлено через 1 минуту Поставь программу подключись другим преобразователем в шину, и послушай какими данными обменивается родная программа запустив, например, ComPump. Добавлено через 1 минуту insite2012, даже еслиб какой-то мусор прилетел - событие бы сработало. А т.к. в ответ тишина - надо разбираться в нюансах железеза.
0
|
||
|
|
||
| 13.01.2017, 18:18 | ||
|
0
|
||
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 18:26 [ТС] | |
|
insite2012, ничего, 0
0
|
|
|
|
||
| 13.01.2017, 18:31 | ||
|
А если их программой подключиться, то есть данные? Если есть, возьмите сканер для порта (например SerialPortMonitor), отсканируйте обмен с устройством через штатную программу и сравните с тем, что передаете вы.
0
|
||
|
0 / 0 / 1
Регистрация: 09.04.2015
Сообщений: 21
|
|
| 13.01.2017, 18:49 [ТС] | |
|
Ураа! Получил ответ!!
0xC0, 0xD0,0x14,0x00,0x81 вот такой пакет надо было кидать, через сканер узнал) Остался последний вопрос, как мне блин получить CRC-8 из пакета? Вообще не могу понять что это
0
|
|
|
|
|
| 13.01.2017, 18:54 | |
|
0
|
|
| 13.01.2017, 18:54 | |
|
Помогаю со студенческими работами здесь
20
Подключение сокетом к com-порту Подключение светодиодов к COM-порту Winsocks и подключение к занятому порту. Подключение к удаленному компьютеру по порту Как перенаправить подключение к одному порту на другой? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|