#include <myhead.h>
#define SER_PORT 8888
#define SER_IP "192.168.117.39"
//#define CLI_PORT 9999
//#define CLI_IP "192.168.117.39"
int main(int argc, const char *argv[])
{
int cfd = socket(AF_INET,SOCK_STREAM,0);
if(cfd == -1)
{
perror("socket");
return -1;
}
printf("socket success cfd = %d\n",cfd);
int reuse = 1;
if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1)
{
perror("setsockopt");
return -1;
}
printf("端口号快速重用成功\n");
/*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");
return -1;
}
printf("bind success\n");
*/
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");
return -1;
}
printf("发送成功\n");
//ff 02 00 B4 ff
char rbuf[5]={0xff,0x02,0x00,0x00,0xff};
unsigned char bbuf[5]={0xff,0x02,0x01,0x00,0xff};
send(cfd,rbuf,sizeof(rbuf),0);//定义初始位置
sleep(1);//防止粘包
send(cfd,bbuf,sizeof(bbuf),0);
char choose;
int flag;//判断需要哪个机械臂动
while(1)
{
printf("请输入:");
scanf("%c",&choose);
while(getchar()!=10);
switch(choose)
{
case 'w'://蓝色机械臂角度增大
if(rbuf[3]!=90)
{
rbuf[3]++;
}
flag=0;
break;
case 's'://蓝色机械臂角度减小
if(rbuf[3]!=-90)
{
rbuf[3]--;
}
flag=0;
break;
case 'd'://红色机械臂增大
if(bbuf[3]!=180)
{
bbuf[3]++;
}
flag=1;
break;
case 'a'://红色机械臂减小
if(bbuf[3]!=0)
{
bbuf[3]--;
}
flag=1;
break;
case 'q':
break;
default:
printf("输入错误请重新输入\n");
break;
}
if(choose=='q')//退出循环
{
break;
}
if(flag==0)
{
send(cfd,rbuf,sizeof(rbuf),0);
}
else if(flag==1)
{
send(cfd,bbuf,sizeof(bbuf),0);
}
usleep(100);
}
close(cfd);
return 0;
}