思维导图
机械臂客户端
//机械臂客户端
#include <myhead.h>
#define PORT 8888
#define IP "192.168.124.46"
int main(int argc, const char *argv[])
{
//创建套接字、
int oldfd = socket(AF_INET,SOCK_STREAM,0);
if(oldfd==-1)
{
perror("socket");
return -1;
}
//绑定
//填充客户端信息结构体
struct sockaddr_in client = {
.sin_family = AF_INET,
.sin_port = htons(PORT),
.sin_addr.s_addr = inet_addr(IP)
};
//连接服务器
if(connect(oldfd,(struct sockaddr *)&client,sizeof(client))==-1)
{
perror("connect");
return -1;
}
//向服务器发送消息
char rbuff[5] = {0xff,0x02,0x00,-0x5A,0xff}; //红色臂
unsigned char bbuff[5] = {0xff,0x02,0x01,0x00,0xff}; //蓝色臂
//发送初始数据
send(oldfd,rbuff,sizeof(rbuff),0);
sleep(1);
send(oldfd,bbuff,sizeof(bbuff),0);
//通过键盘控制数据的收发
char ch;
while(1)
{
printf("请输入选项:\n");
scanf("%c",&ch);
getchar();
switch(ch)
{
case 'e':
{
rbuff[3] = -90;
bbuff[3] = 0;
send(oldfd,rbuff,sizeof(rbuff),0);
sleep(1);
send(oldfd,bbuff,sizeof(bbuff),0);
}
case 'w':
{
if(rbuff[3] >= 90)
{
rbuff[3] = 90;
}
rbuff[3] += 5;
send(oldfd,rbuff,sizeof(rbuff),0);
}
break;
case 's':
{
if(rbuff[3] <= -90)
{
rbuff[3] = -90;
}
rbuff[3] -= 5;
send(oldfd,rbuff,sizeof(rbuff),0);
}
break;
case 'a':
{
if(bbuff[3] >= 180)
{
bbuff[3] = 180;
}
bbuff[3] += 5;
send(oldfd,bbuff,sizeof(bbuff),0);
}
break;
case 'd':
{
if(bbuff[3] <= 0)
{
bbuff[3] = 0;
}
bbuff[3] -= 5;
send(oldfd,bbuff,sizeof(bbuff),0);
}
break;
case 'q':
{
close(oldfd);
exit(0);
}
break;
default:printf("您的输入有误!!!,请重新输入:\n");break;
}
}
return 0;
}