机械臂操作
#include<myhead.h>
#define SER_IP "192.168.126.92"
#define SER_PORT 8888
#define CLI_IP "192.168.126.93"
#define CLI_PORT 9999
int main(int argc, const char *argv[])
{
int cfd = socket(AF_INET, SOCK_STREAM, 0);
if(cfd == -1)
{
perror("socket ");
return -1;
}
int reuse = 1;
if(setsockopt(cfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))==-1)
{
perror("setsockopt err");
return -1;
}
struct sockaddr_in cin;
cin.sin_family = AF_INET;
cin.sin_port = htons(CLI_PORT);
cin.sin_addr.s_addr = inet_addr(CLI_IP);
if(bind(cfd, (struct sockaddr*)&cin, sizeof(cin)) == -1)
{
perror("bind error");
return -1;
}
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(SER_PORT);
sin.sin_addr.s_addr = inet_addr(SER_IP);
if(connect(cfd, (struct sockaddr*)&sin, sizeof(sin))==-1)
{
perror("connect error");
return -1;
}
char rbuf[5] = {0xff, 0x02, 0x00, 0x00, 0xff};
unsigned char bbuf[5] = {0xff, 0x02, 0x01, 0x00, 0xff};
send(cfd, rbuf, sizeof(rbuf), 0);
send(cfd, bbuf, sizeof(bbuf), 0);
while(1)
{
char w=getchar();
switch(w)
{
case 'w':
if(rbuf[3]<90)
rbuf[3]+=1;
send(cfd, rbuf, sizeof(rbuf), 0);
break;
case 's':
if(rbuf[3]>-90)
rbuf[3]-=1;
send(cfd, rbuf, sizeof(rbuf), 0);
break;
case 'a':
if(bbuf[3]>0)
bbuf[3]-=1;
send(cfd, bbuf, sizeof(bbuf), 0);
break;
case 'd':
if(bbuf[3]<180)
bbuf[3]+=1;
send(cfd, bbuf, sizeof(bbuf), 0);
break;
case 'q':
break ;
default:
break;
}
}
printf("退出\n");
close(cfd);
return 0;
}