Я хотел бы передать данные между устройством (сервером, на ОС Linux) и ПК (на ОС Linux / Windows), используя modbus tcp-ip, как прикреплено на рисунке.
Пока что яобработали задание, когда клиент отправляет данные на сервер, а сервер отправляет данные клиенту (см. ниже «код клиента»).
, и я хотел бы отправить значение «низкий / высокий» иликоманда от клиента (ПК) к серверу (устройству) с использованием Modbus TCP-IP.
, но я не знаю, как кодировать о типе пакета данных (например, код типа данных, способчтение / запись данных на сервер)
, поэтому я прошу вас, дайте мне знать, как я могу сделать, чтобы закодировать стандартный тип пакета данных. или вы отправляете соответствующий пример кода?
if ((server_sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("error : ");
return 1;
}
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = inet_addr("192.168.0.111");
serveraddr.sin_port = htons(3500);
client_len = sizeof(serveraddr);
if (connect(server_sockfd, (struct sockaddr *) &serveraddr, client_len) == -1)
{
perror("connect error : ");
return 1;
}
memset(buf, 0x00, MAXLINE);
read(0, buf, MAXLINE);
if (write(server_sockfd, buf, MAXLINE) <= 0)
{
perror("write error : ");
return 1;
}
memset(buf, 0x00, MAXLINE);
if(read(server_sockfd, buf, MAXLINE) <=0)
{
perror("read error :");
return 1;
}
close(server_sockfd);
printf("read : %s", buf);