机械臂客户端代码:
#include<myhead.h>
#define IP "192.168.114.213"
#define PORT 8888
int main(int argc, const char *argv[])
{
//创建客户端用于通信的套接字
int cfd=socket(AF_INET,SOCK_STREAM,0);
if(cfd==-1)
{
perror("socket error");
return -1;
}
//连接服务器
//填充服务器地址信息结构体
struct sockaddr_in sin;
sin.sin_family=AF_INET; //IPv4通信
sin.sin_port=htons(PORT); // 服务器端口号
sin.sin_addr.s_addr=inet_addr(IP); //IP地址
if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
{
perror("connect error");
return -1;
}
printf("connect sucess");
//向机械臂发送数据
char red_buf[5]={0xff,0x02,0x00,0x00,0xff};
char blue_buf[5]={0xff,0x02,0x01,0x00,0xff};
send(cfd,red_buf,sizeof(red_buf),0);
send(cfd,blue_buf,sizeof(blue_buf),0);
char key;
while(1)
{
puts("请输入w|s|a|d:");
key=getchar();
getchar();
switch(key)
{
case 'w':
red_buf[2]=0x00;
printf("红色臂角度增加\n");
red_buf[3]=red_buf[3]+5;
if(red_buf[3]>90)
{
red_buf[3]=90;
continue;
}
break;
case 's':
red_buf[2]=0x00;
printf("红色臂角度减小\n");
red_buf[3]=red_buf[3]-5;
if(red_buf[3]<-90)
{
red_buf[3]=-90;
continue;
}
break;
case 'd':
blue_buf[2]=0x01;
printf("蓝色臂角度增加\n");
blue_buf[3]=blue_buf[3]+5;
if(blue_buf[3]>180)
{
blue_buf[3]=180;
continue;
}
break;
case 'a':
blue_buf[2]=0x01;
printf("蓝色臂角度减小\n");
blue_buf[3]=blue_buf[3]-5;
if(blue_buf[3]<0)
{
blue_buf[3]=0;
continue;
}
break;
case 'q':
red_buf[3]=0;
blue_buf[3]=0;
break;
default:
break;
}
if(send(cfd,red_buf,sizeof(red_buf),0)==-1)
{
perror("send error");
return -1;
}
if(send(cfd,blue_buf,sizeof(blue_buf),0)==-1)
{
perror("send error");
return -1;
}
printf("操作成功\n");
}
//关闭客户端
close(cfd);
return 0;
}
效果视频: