思维导图
机械臂客户端
//机械臂客户端
#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;
}