Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP и COM порт

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер!
 
Как реализовать отправку в COM порт 8-битный целочисленный тип без знака (uint8_t)?
 

Код:
 
exec("mode COM3 BAUD=9600 PARITY=N data=8 stop=1 xon=off");
$fp = fopen ("COM3", "w");
if (!$fp) {
   echo "Not open";
} else {
   echo "Open";
   $bin = pack('CCCC', '0x02, 0x03, 0x06, 0x30, 0x41, 0xB3');
   fwrite($fp, $bin);
}
 

 
Получаю ошибку сервера 502
Стоит IIS 10 + PHP8
 
Подскажите где почитать можно, как работать с COM портом

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 16:43 10-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
https://stackoverflow.com/questions/16860605/communicating-serial-port-on-windows-with-php

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 17:28 10-03-2023
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Это не то, там тупо AT команды шлют, мне же нужно как то отправить на устройство.
 
К COM порту PHP подключается, проблем нет. Вопрос как отправить в порт вот это

Код:
 
uint8_t CashCode_rest[] = {0x02, 0x03, 0x06, 0x30, 0x41, 0xB3};
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 18:05 10-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Это не то, там тупо AT команды шлют, мне же нужно как то отправить на устройство.

и в чем разница? а прочитать не нужно?
более того, b - для отправки бинарных данных, как есть
 

Цитата:
pack('CCCC', '0x02, 0x03, 0x06, 0x30, 0x41, 0xB3');

это что??  даже не подумали, не попробовали вывести.
 

Код:
echo pack('CCCC', '0x02, 0x03, 0x06, 0x30, 0x41, 0xB3');


Цитата:
Fatal error: Uncaught ValueError: Type C: too few arguments in

 
pack('C*', 0x02, 0x03, 0x06, 0x30, 0x41, 0xB3);
 
 
 

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 23:34 10-03-2023
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Я позже ошибку с pack увидел, но тем не менее до меня не доходит как в php объявить переменную типа uint8_t?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 17:06 11-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
не доходит как в php объявить переменную типа uint8_t

Ничего не нужно в php объявлять. Все уже написаночерез pack  как должно быть.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 20:16 11-03-2023
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо за помощь, я конечно попробую реализовать, интереса ради.  
Но на JAVA получилось реализовать CCNET протокол без особых трудностей.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 21:29 15-03-2023
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP и COM порт


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru