Взялся я тут на си написать программку, чтоб общалась с ардуиной подключённой к роутеру. Писать отдельные символы в ардуину у меня получается и читать отдельные символы тоже получилось.
Вот:
PHP код:
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
#include <stdio.h>
#define PORT "/dev/ttyUSB0"
#define BAUDRATE B115200
int fd;
int val, vxd1, vxd2, vxd3, vxd4, vxd5;
int ret, count;
int main()
{
fd = open(PORT, O_RDWR | O_NOCTTY);
if (fd<0) return 1;
if (!isatty(fd)) return 2;
struct termios port_cfg;
if (tcgetattr(fd, &port_cfg)<0) return 3;
cfmakeraw(&port_cfg);
cfsetospeed(&port_cfg, BAUDRATE);
cfsetispeed(&port_cfg, BAUDRATE);
if (tcsetattr(fd, TCSANOW, &port_cfg)<0) return 4;
..................................................................................
val='1';
ret = write(fd, &val, 1);
if (ret!=1) return 5;
ret = read(fd, &vxd1, 1);
if (ret!=1) return 6;
printf("%d\n", vxd1);
.................................................................................
}
Тоесть порт открывается, туда еденица записывается и в ответ приходит нужное число.
А вот что нужно вписать вот сюда:?
PHP код:
int main()
{
fd = open(PORT, O_RDWR | O_NOCTTY);
if (fd<0) return 1;
if (!isatty(fd)) return 2;
struct termios port_cfg;
if (tcgetattr(fd, &port_cfg)<0) return 3;
cfmakeraw(&port_cfg);
cfsetospeed(&port_cfg, BAUDRATE);
cfsetispeed(&port_cfg, BAUDRATE);
if (tcsetattr(fd, TCSANOW, &port_cfg)<0) return 4;
..................................................................................
????????????????????????????????
?????????????????????????????
????????????????????????????
printf(???????);
.................................................................................
}
И какие переменные надо обьявить?
Чтоб принять от ардуины массив байт?
Вот кусок ардуины:
PHP код:
bytes[0]=2;
bytes[1]=4;
bytes[2]=67;
bytes[3]=24;
Serial.write(bytes,4);
Как принять, разложить по полочкам эти вывести в консоль эти байты?
Подскажите плиз!!!