Esempio n. 1
0
/**
*@breif  main()
*/
int main(int argc, char *argv[])
{
 int fd;
 int nread;
 char buff[512];
 char *dev ="/dev/ttyACM0";
 char recchr[512];
 int device, c;

 sleep(1);
 fd = OpenDev(dev);

 if (fd>0){
      set_speed(fd,9600);
 }
 else{
  printf("Can't Open Serial Port!\n");
  exit(0);
 }

 if (set_Parity(fd,8,1,'N')== FALSE)
  {
     printf("Set Parity Error\n");
      exit(1);
   }
//   while(1)
//   {
        scanf("%s",recchr) ;
   write(fd, "c", 1);
   write(fd, "\"\n", 2);
	printf("发完!\n");
//   }
     close(fd);
     exit(0);
}
Esempio n. 2
0
 /** 
 *@breif     main() 
 */  
 int main(int argc, char **argv)  
 {  
     int fd;  
     int nread;  
     char buff[512];  
     char *dev ="/dev/ttty0";  
     fd = OpenDev(dev);  
     if (fd>0)  
     set_speed(fd,19200);  
     else  
         {  
         printf("Can't Open Serial Port!\n");  
         exit(0);  
         }  
   if (set_Parity(fd,8,1,'N')== FALSE)  
   {  
     printf("Set Parity Error\n");  
     exit(1);  
   }  
   while(1)  
     {  
         while((nread = read(fd,buff,512))>0)  
         {  
             printf("\nLen %d\n",nread);  
             buff[nread+1]='\0';  
             printf("\n%s",buff);  
         }  
     }  
     //close(fd);  
     //exit(0);  
 }  
Esempio n. 3
0
int main(int argc, char **argv)
{
	int fd;
	int nread;
    int speedcom;
	char buff[512];
    time_t nowtime;
    time(&nowtime);
	printf("%s",asctime(gmtime(&nowtime)));
    //char command[100] = {0x01, 0x03, 0x00, 0x40, 0x00, 0x18, 0x44, 0x14};
    char *command = argv[3];
	fd = OpenDev(argv[2]);
    printf("fd: %u\n", fd);
    printf("open tty: %s\n", argv[2]);
	if (fd>0) {
        speedcom = ascii_to_integer(argv[1]);
        printf("speedcom: %d\n", speedcom);
        set_speed(fd,speedcom);
        printf("open fd: %u\n", fd);
    }
	else {
    	printf("Can't Open Serial Port!\n");
		exit(0);
	}
    if (set_Parity(fd,8,1,'N')== FALSE) {
        printf("Set Parity Error\n");
        exit(1);
    }
    //ioctl(fd, RS4851_C30, 1);
    //printf("writting command: %s\n", command);
    //write(fd, command, sizeof(command));
    //usleep(10000);
    while(1) {  
        //ioctl(fd,RS4851_C30,1);
        //printf("writting command: %s\n", command);
        //write(fd, command, 8);
        //usleep(500000);
        //ioctl(fd,RS4851_C30,0);
   		//usleep(500000);
        //while((nread = read(fd,buff,512))>0)
   		//{
      	//  printf("\nLen %d\n",nread);
      	//  buff[nread+1]='\0';
      	//  printf("\n%s",buff);
        //}
        
        while(nread = read(fd,buff,512)) {
      	    buff[nread+1]='\0';
            //printf("printf %s\n", buff);
            //write(1,  buff, nread);
            //write(fd, buff, nread);
   	 	}
  	}
    close(fd);
    exit(0);
}
Esempio n. 4
0
/**
 *@breif     main()
 */
int main(int argc, char **argv)
{
    int fd;
    int nread;
    char buff[512], readbuff[32];

    if (argc < 2) {
        printf("Usage: %s devicefile \n", *argv);
        exit(1);
    }

    char *dev = *(argv + 1);

    printf("Device: %s \n", dev);
    fd = OpenDev(dev);
    printf("Device opened\n");

    if (fd > 0) {
        printf("Begin set speed\n");
        SetSpeed(fd, 9600);
    } else {
        printf("Can't Open Serial Port!\n");
        exit(0);
    }

    printf("Begin set parity\n");
    if (SetParity(fd,8,1,'N') == FALSE) {
        printf("Set Parity Error\n");
        exit(1);
    }

    sleep(3); // wait for Arduino

    while(1) {
        char w[] = "hello$";
        int x = write(fd, w, 6);
        if (x == -1) {
            perror("Can't write to device");
        }

        int buffi=0;
        int tempi=0;

        while((nread = read(fd,readbuff, 32)) > 0) {
            for (tempi=0; tempi<nread; tempi++) {
                buff[buffi++] = readbuff[tempi];
            }
        }

        buff[buffi]='\0';
        printf("Reply:%s\n",buff);
    }
    //close(fd);
    //exit(0);
}
Esempio n. 5
0
//启动录音
BOOL CWaveIn::StartRec()
{
#ifdef PLAY
    //开始播放
    m_WaveOut.StartPlay();
#endif

    //返回值
    BOOL bRet = FALSE;	

    //启动线程失败
    if (!StartThread())           
    {
        goto Exit;
    }

    //打开录音设备失败
    if (!OpenDev())
    {
        goto Exit1;
    }

    //准备缓存失败
    if (!PerPareBuffer())
    {
        goto Exit2;
    }
/*
    //开始录音
    if (!OpenRecord())
    {
        goto Exit3;
    }
*/
    //设置返回值
    bRet = TRUE;
    goto Exit;
/*
    Exit3:
    //释放缓存
    FreeBuffer();
*/
Exit2:
    //关闭录音设备
    CloseDev();

Exit1:
    //停止线程
    StopThread();

Exit:
    //返回
    return bRet;
}
void *pthread_ck2316_alarm(void *arg)
{
    int com_fd;
    int recv_ret = 0;
    //unsigned char recv_buffer[72] = {0};

    while (1) 
    {
        recv_ret = ck2316_alarm_init();
        if (recv_ret == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tCK2316 alarm init failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
        }
        else
            break;
    }

    while (1) 
    {
        com_fd = OpenDev(CK2316_UART_DEVICE);
        if (com_fd == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tOpen uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        //fd nSpeed nBits nEvent nStop)
        //set_opt(com_fd, 2400, 3, 2, 0); //for ck2316
        //recv_ret = set_opt(com_fd, 9600, 3, 0, 0); //for ck2316
        //recv_ret = set_opt(com_fd, CK2316_UART_BOARD, CK2316_UART_DATA_BIT, CK2316_UART_CHECK_BIT, CK2316_UART_STOP_BIT);
        recv_ret = set_opt(com_fd, ck2316_alarm_data.ck2316_alarm_serial_pamater.serialAttr.dwBaudRate, ck2316_alarm_data.ck2316_alarm_serial_pamater.serialAttr.byDataBit, ck2316_alarm_data.ck2316_alarm_serial_pamater.serialAttr.byParity, ck2316_alarm_data.ck2316_alarm_serial_pamater.serialAttr.byStopBit);
        if (recv_ret == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tInit uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        ClrCom(com_fd);

        recv_ret = ck2316_alarm_handshake_and_setup(&com_fd);
        if (recv_ret == -1) 
        {
            close(com_fd);
            sleep(10);
        }
    }

    return (void *)1;
}
Esempio n. 7
0
//打开录音设备
BOOL CAudioRec::Create(WAVEFORMATEX *pwf,DWORD dwCallBack,DWORD dwInst,DWORD fdwOpen ,DWORD dwBufSize)
{
	BOOL bRet=FALSE;
	if(m_hIn)
	{
		bRet=TRUE;
		goto RET;
	}
	if(!OpenDev(pwf,dwCallBack,dwInst,fdwOpen))
		goto RET;
	m_nBufSize=dwBufSize;
	bRet=TRUE;
RET:
	return bRet;
}
Esempio n. 8
0
//打开音频输出设备
BOOL CAudioPlay::Create(WAVEFORMATEX *pwf,DWORD dwCallBack,DWORD dwInst,DWORD fdwOpen )
{
    BOOL bRet=FALSE;
    if(m_hOut)
    {
        bRet=TRUE;
        goto RET;
    }
    //打开设备
    if(!OpenDev(pwf,dwCallBack,dwInst,fdwOpen))
        goto RET;
    bRet=TRUE;
RET:
    return bRet;
}
Esempio n. 9
0
// 开启通信服务
int CComDev::Start()
{
	if (OpenDev(m_cDev) != TRUE)
	{
		return FALSE;
	}
	if (set_opt(115200, 8, 'N', 1) != TRUE)
	{
		return FALSE;
	}
	//开启接收线程
	pthread_create(&m_RecvPt, NULL, threadRecv, this);

	return TRUE;
}
void *pthread_matrix_control(void *arg)
{
    int com_fd;
    int recv_ret = 0;
    //unsigned char send_buffer[] = {0xBB, 0x00, 0x06, 0x02};

    while (1) 
    {
        com_fd = OpenDev(MATRIX_UART_DEVICE);
        if (com_fd == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tOpen uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        //fd nSpeed nBits nEvent nStop)
        //recv_ret = set_opt(com_fd, 9600, 3, 0, 0); //for matrix 
        recv_ret = set_opt(com_fd, MATRIX_UART_BOARD, MATRIX_UART_DATA_BIT, MATRIX_UART_CHECK_BIT, MATRIX_UART_STOP_BIT);
        if (recv_ret == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tInit uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        ClrCom(com_fd);

        #if 0
        while (1) 
        {
            send_buffer[2] = 0x07;
            printf("1\n");
            write(com_fd, send_buffer, 4);
            sleep(2);
        }
        #endif 
        recv_ret = matrix_handshake_and_setup(&com_fd);
        if (recv_ret == -1) 
        {
            close(com_fd);
            sleep(10);
        }
    }

    return (void *)1;
}
Esempio n. 11
0
BOOL CWaveOut::StartPlay()
{
	BOOL bRet=FALSE;
	if (!StartThread())           
	{
		goto Exit;
	};
	if (!OpenDev())
	{
		goto Exit1;
	};
	bRet = TRUE;
	goto Exit;
Exit1:
	StopThread ();
Exit:
	return bRet;
}
Esempio n. 12
0
int Uart_Init(char *Dev)					//打开串口 设置波特率115200 数据位8 两个结束位 奇偶校验位
{
	int fd;
	if((fd = OpenDev(Dev)) > 0)
	{
		//set_speed(fd, 115200);
		set_speed(fd, 9600);
		if (set_Parity(fd,8,2,'N')== -1)
		  {
			printf("Set Parity Error\n");
			return -1;
		}
		else return fd;
	}
	else
	{
		return -1;	
	}
	
}
Esempio n. 13
0
//-------------------------------------------------------------------------
//串口初始化	参数:设备名,波特率,数据位,停止位,校验位
//-------------------------------------------------------------------------
int serial_init(int Dev, int speed, int databits, int stopbits, int parity)
{

	static int serial_fd;
	
	//打开串口设备
	serial_fd = OpenDev(Dev);

	if(serial_fd > 0)
		set_speed(serial_fd, speed);		//设置波特率
	else
	{
		printf("Can't Open Serial Port!\n");
		exit(0);
	}
	//恢复串口未阻塞状态
	if (fcntl(serial_fd, F_SETFL, O_NONBLOCK) < 0)
	{
		printf("fcntl failed!\n");
		exit(0);
	}

	//检查是否是终端设备
#if 1	//如果屏蔽下面这段代码,在串口输入时不会有回显的情况,调用下面这段代码时会出现回显现象。
	if(isatty(STDIN_FILENO)==0)
	{
		printf("standard input is not a terminal device\n");
	}
	else
		printf("isatty success!\n");
#endif
	//设置串口参数
	if(set_Parity(serial_fd, databits, parity, stopbits) == FALSE)
	{
		printf("Set parity Error\n");
		exit(1);
	}
	
	return serial_fd;
}
Esempio n. 14
0
DLLEXP bool StartSvr(PSvrHnds pSH)
{
	bool bSuccess = false;
	
	if(pSH == NULL)
	{
		PRINT("[%s]error : pSH == NULL!\n",__func__);
		goto QUIT;
	}
	
	if(pSH->hSVR == 0)
	{
		PRINT("[%s]error : pSH->hSVR == 0!\n",__func__);
		goto QUIT;
	}
	
	bool bRet = StartService(pSH->hSVR,0,NULL);
	if(!bRet && GetLastError() == ERROR_SERVICE_ALREADY_RUNNING)
	{
		PRINT("[%s]msg : Service is Already Running!\n",\
			__func__);
	}
	else if(!bRet)
	{
		PRINT("[%s]error : StartService Failed!\n",\
			__func__);
		goto QUIT;
	}
	
	if(!OpenDev(pSH))
	{
		goto QUIT;
	}
	
	bSuccess = true;
QUIT:
	return bSuccess;
}
void *pthread_cradle_head_control(void *arg)
{
    int com_fd;
    int recv_ret = 0;
    //unsigned char send_buffer[] = {0xBB, 0x00, 0x06, 0x02};

    while (1) 
    {
        com_fd = OpenDev(CRADLE_HEAD_UART_DEVICE);
        if (com_fd == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tOpen uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        //fd nSpeed nBits nEvent nStop)
        //recv_ret = set_opt(com_fd, 9600, 3, 0, 0); //for cradle head  8N1
        recv_ret = set_opt(com_fd, CRADLE_HEAD_UART_BOARD, CRADLE_HEAD_UART_DATA_BIT, CRADLE_HEAD_UART_CHECK_BIT, CRADLE_HEAD_UART_STOP_BIT);
        if (recv_ret == -1) 
        {
            printf("FUNC[%s] LINE[%d]\tInit uart failed!\n",__FUNCTION__, __LINE__);
            sleep(10);
            continue;
        }
        ClrCom(com_fd);

        recv_ret = cradle_head_handshake_and_contorl(&com_fd);
        if (recv_ret == -1) 
        {
            close(com_fd);
            sleep(10);
        }
    }

    return (void *)1;
}
int main(int argc,char* argv[])
{
	
	if(argc != 3)
	{
		printf("缺少参数:error!\n");
		exit(0);
	}
	 
 	
	//*********打开串口并设置波特率*********	
	
	char *dev = (char*)argv[2]; //串口

	int fd = OpenDev(dev);           //打开串口函数
    if(fd<0)
    {
   	    close(fd);
        return FALSE;
    }

	int set_res=set_speed(fd,9600);          //设置串口

	if(set_res==FALSE)
 	{
 		close(fd);
   		return FALSE;
  	}

	if (set_Parity(fd,8,1,'N') == FALSE)
	{
		close(fd);
		return FALSE;
	}

	//***********从文件中读出指令*************** 
	int temperature = atoi(argv[1]);
	
	set_temperature(temperature);
	
    //*********发送命令************** 
	int send_res = Send_order(fd,outcommand,24);

	if(send_res==FALSE)
 	{
 		close(fd);
   		return FALSE;
	}

    char total_buff[1024];
	int length = Recv_data(fd,total_buff);//读取串口数据
	printf("接收数据长度为:%d\n",length);
	
	int j;//显示接收到的字符
    FILE *stream;
	stream = fopen("receiveinfo","w+");
	for (j = 0 ; j < length; j++)
	{       
		printf("%02X  ", total_buff[j]);
		fprintf(stream, "%02X", total_buff[j]);	
	}    
	fclose(stream);           
	printf("\n");  

	close(fd);
	return 0;

}
Esempio n. 17
0
int main()
{
	    int i,j,k,m=0;

         int fd;

         int nread;

         char tempbuff[37];


         char *dev  = "/dev/ttyS0"; //串口1
	start:
         fd = OpenDev(dev);

         set_speed(fd,57600);

         if (set_Parity(fd,8,1,'N') == FALSE)  {

                   printf("Set Parity Error\n");

                   //return -1;

         }
	
	   iniconnect();

         while (1) //循环读取数据

         {  

               if((nread = read(fd, tempbuff, 37))>0)

               {

                            //printf("\nLen %d\n",nread);

                    //printf("%s",tempbuff);
					//printf("%c\n",tempbuff[1]);
					for(m=0;tempbuff[m]!='#';m++);
						m++;
					if(tempbuff[m]=='@')
					{
						m++;
						for(i=0;i<16;i++)
							str2[23+i]=tempbuff[m++];
						str2[39]='\'';
						str2[40]=',';
						str2[41]='\'';
						
						for(j=0;j<17;j++)
							str2[42+j]=tempbuff[m++];
						str2[59]='\'';
						str2[60]=')';
						str2[61]='\0';
						printf("%s\n",str2);
						if(strlen(str2)!=61)
							goto start;
						mysql_query(&connection,str2);
					}
					
					else if(tempbuff[m]=='$')
					{
						m++;
						for(i=0;i<16;i++)
							str3[24+i]=tempbuff[m++];
						str3[40]='\'';
						str3[41]=',';
						str3[42]='\'';
						
						for(j=0;j<17;j++)
							str3[43+j]=tempbuff[m++];
						str3[60]='\'';
						str3[61]=')';
						str3[62]='\0';
						printf("%s\n",str3);
						if(strlen(str3)!=62)
							goto start;
						mysql_query(&connection,str3);
					}
					
					else if(tempbuff[m]=='%')
					{
						m++;
						for(i=0;i<16;i++)
							str4[25+i]=tempbuff[m++];
						str4[41]='\'';
					    str4[42]=',';
					    str4[43]='\'';
					    
					    for(j=0;j<17;j++)
					    	str4[44+j]=tempbuff[m++];
					    str4[61]='\'';
					    str4[62]=')';
					    str4[63]='\0';
					    printf("%s\n",str4);
						if(strlen(str4)!=63)
							goto start;
					    mysql_query(&connection,str4);
					}
					
					else if(tempbuff[m]=='^')
					{
						m++;
						for(i=0;i<16;i++)
							str5[25+i]=tempbuff[m++];
						str5[41]='\'';
						str5[42]=',';
						str5[43]='\'';
						
						for(j=0;j<17;j++)
							str5[44+j]=tempbuff[m++];
						str5[61]='\'';
						str5[62]=')';
						str5[63]='\0';
						printf("%s\n",str5);
						if(strlen(str5)!=63)
							goto start;
						mysql_query(&connection,str5);
					}
						
						
					else{
					
				   		for(i=0;i<16;i++)
    					str1[18+i]=tempbuff[m++];
	    				str1[34]='\'';
	    				str1[35]=',';
	    				str1[36]='\'';
	    		
	    				for(j=0;j<8;j++)
	    					str1[37+j]=tempbuff[m++];
	    				str1[45]='\'';
	    				str1[46]=',';
	    				str1[47]='\'';
	    		
	    				for(k=0;k<10;k++)
	    					str1[48+k]=tempbuff[m++];
	    	    
	    	    			str1[58]='\'';
	    	    			str1[59]=')';
	    	    			str1[60]='\0';
	    	    		printf("%s\n",str1);
				if(strlen(str1)!=60)
					goto start;
	    	    		mysql_query(&connection,str1);
					}
    	    		
    	    		

              }
			
			

                            
         }

         //return buff;

         close(fd);
         return 0;



         //close(fd); 

         // exit (0);
}
Esempio n. 18
0
void send_buff(int id,char *ag,int n,char *fla)
{




    int fd;
    char *dev = "/dev/ttyS1";
	fd = OpenDev(dev); 
	set_speed(fd,9600); 
	if (set_Parity(fd,8,1,'N' )== -1)
 	{ 
	printf("Set Parity Errorn"); 
	exit (0); 
	} 
	char buf[4096]="\0";
    char flag[4096]="\0";
    strcat(flag,fla);
    printf("flag==%s\n",flag);
	strcat(ag,"&");
	strcat(buf,ag);
	ag=buf;
	printf("ag=%s\n",ag);
	int t=0;
	char c='1';
	int j=0;
    int res;
    int i;
	c=ag[j];
  

/*  

	char buff[4096]="\0";
	int jj;
	int ii;
	char fh=';';
	printf("buf======%s,,flag=====%s\n",buf,flag);
	for(jj=0;'&'!=buf[jj]&&jj<20;jj++)
	{
		for(ii=0;';'!=buff[ii]Z;ii++,jj++)
		{
			buff[ii]=buf[jj];
			printf("~~~~~buff[%d]=========%c\n",ii,buff[ii]);
		}
		printf("~~~~~jj====%d\n",jj);
		strcat(flag,buff);
		printf("for  jj  flag===%s\n",flag);
		uart_send(fd,flag);
		flag[5]='\0';
	}


*/
 			
	while('&'!=c)
	{
         while(';'!=c)
		{
			send_buf[t]=c;
        	t++;
  			j++;
			c=ag[j];
		}
        send_buf[t]=c;
		res=-1;
		  i=0;
		//int flag_break=0;
    	do
		{
      		
			printf("in  send_buff    buff====%s\n",send_buf);
			if(i==0)
			strcat(flag,send_buf);
			
			printf("in  send_buff    flag====%s\n",flag);
            res = uart_send(fd,flag);
      		sleep(3);
      		if(i == 5)
      		exit(0);//
			 i++;
      		
     	}while(res<0);
		t=0;
        j++;
        c=ag[j];
        bzero(send_buf,sizeof(send_buf));
  		//bzero(flag,sizeof(flag));
		sprintf(flag,"\0");
		strcat(flag,fla);
	}	




    close(fd);
}
int main(int argc,char* argv[])
{
	
	if(argc != 3)
	{
		printf("缺少参数:error!\n");
		exit(0);
	}
	 
 	
//*********打开串口并设置波特率*********	
	
	char *dev  = (char*)argv[2]; //串口

	int fd = OpenDev(dev);           //打开串口函数
    if(fd<0)
    {
    	close(fd);
        return FALSE;
    }

	int set_res=set_speed(fd,9600);          //设置串口

    if(set_res==FALSE)
    {
    	close(fd);
       return FALSE;
    }

	if (set_Parity(fd,8,1,'N') == FALSE)
	{
		   close(fd);
           return FALSE;
	}

	//***********从文件中读出指令*************** 

	char order1[8]={0x01,0x03,0x00,0x01,0x00,0x01,0xd5,0xca};
	char order2[8]={0x01,0x03,0x03,0x00,0x00,0x01,0x84,0x4e};
	char order3[18]={0x7E,0x32,0x30,0x30,0x31,0x39,0x30,0x38,0x41,
	0x30,0x30,0x30,0x30,0x46,0x44,0x39,0x41,0x0D};
	char order4[8]={0x01,0x03,0x06,0x06,0x00,0x01,0x84,0x82};
	//char order4[8]={0x01,0x04,0x00,0x04,0x00,0x01,0x70,0x0b};
    
    int result =0;
    int flag = atoi(argv[1]);
    int send_res;
    int recv_length = 7;
   	char total_buff[1024];
    if(flag ==1)
	{
  		send_res=Send_order(fd,order1,8);
		Recv_data(fd,total_buff,recv_length);//读取串口数据
		if(total_buff[2]==0x2 & total_buff[3]==0x0 & total_buff[4]==0x1)
		{
			
			result =flag;
			
		}
    }
    if(flag ==2)
	{
  		send_res=Send_order(fd,order2,8);
	    Recv_data(fd,total_buff,recv_length);//读取串口数据
    	if(total_buff[2]==0x2 & total_buff[3]==0x0 & total_buff[4]==0x1)
		{
			
			result =flag;
			
		}
    }
    if(flag ==3)
	{
  		send_res=Send_order(fd,order3,18);
		Recv_data(fd,total_buff,recv_length);//读取串口数据
		if(total_buff[0]== 0x7E )
		{
			result =flag;
		}
    }
	if(flag ==4)
	{
  		send_res=Send_order(fd,order4,8);
		Recv_data(fd,total_buff,recv_length);//读取串口数据
		if(total_buff[2]==0x2 & total_buff[4]==0x1 )
		{
			result =flag;
		}
    }
    
    //*********发送命令************** 

	if(send_res==FALSE)
 	{
		close(fd);
		return FALSE;
	}

  
	
	int j;
	for (j = 0 ; j < recv_length; j++)
	{       
		printf("%02X  ", (unsigned char)total_buff[j]);
	}            

	printf("\n");
		
	close(fd);
	return result;

}
Esempio n. 20
0
/**
*@breif 	main()
*/
int main(int argc, char **argv)
{
	int fd;
	int nwrite,nread;
	char buff[512],temp[16];
	char buff3[3]  = {"aaa"};
	char *dev ="/dev/ttyS0",*dev1 ="/dev/ttyS1",*dev2 ="/dev/ttyS2",*dev3 ="/dev/ttyS3", *dev4="/dev/ttyS4";
	
	
	memset(buff,'A',512);
	
	if(argc>=2)
	{
		if(*argv[1]=='1')
		{
			fd = OpenDev(dev1);
			tcgetattr( fd,&old_options);
			if (fd>0)
		    	set_speed(fd,115200);
			else
			{
				printf("Can't Open Serial Port 1!\n");
				exit(0);
			}
		  if (set_Parity(fd,8,1,'N')== FALSE)
		  {
		    printf("Set Parity Error\n");
		    exit(1);
		  }
		
		  nwrite = write(fd,buff,512);
		  
		  printf("\nSent %d Bytes\n\n",nwrite);
		  tcsetattr(fd,TCSANOW,&old_options);
		  sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.
		  close(fd);
		}
		else if(*argv[1]=='2')
		{
			fd = OpenDev(dev2);
			tcgetattr( fd,&old_options);
			if (fd>0)
		    	set_speed(fd,115200);
			else
			{
				printf("Can't Open Serial Port 2!\n");
				exit(0);
			}
		  if (set_Parity(fd,8,1,'N')== FALSE)
		  {
		    printf("Set Parity Error\n");
		    exit(1);
		  }
		
		  nwrite = write(fd,buff,512);
		  
		  printf("\nSent %d Bytes\n\n",nwrite);
		  tcsetattr(fd,TCSANOW,&old_options);	
		  sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.	  
		  close(fd);
		}
		else if(*argv[1]=='3')
		{
			fd = OpenDev(dev3);
			tcgetattr( fd,&old_options);
			if (fd>0)
		    	set_speed(fd,115200);
			else
			{
				printf("Can't Open Serial Port 3!\n");
				exit(0);
			}
		  if (set_Parity(fd,8,1,'N')== FALSE)
		  {
		    printf("Set Parity Error\n");
		    exit(1);
		  }
		
		  nwrite = write(fd,buff,512);
		  
		  printf("\nSent %d Bytes\n\n",nwrite);
		  tcsetattr(fd,TCSANOW,&old_options);
		  sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.
		  close(fd);
		}
                else if(*argv[1]=='4')
		  {
		    fd = OpenDev(dev4);
		    tcgetattr( fd,&old_options);
		    if (fd>0)
		      set_speed(fd,115200);
		    else
		      {
			printf("Can't Open Serial Port 4!\n");
			exit(0);
		      }
		    if (set_Parity(fd,8,1,'N')== FALSE)
		      {
			printf("Set Parity Error\n");
			exit(1);
		      }

		    nwrite = write(fd,buff,512);

		    printf("\nSent %d Bytes\n\n",nwrite);
		    tcsetattr(fd,TCSANOW,&old_options);
		    sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.
		    close(fd);
		  }
		else
		{
			fd = OpenDev(dev);
			tcgetattr( fd,&old_options);
			if (fd>0)
		    	set_speed(fd,115200);
			else
			{
				printf("Can't Open Serial Port 0!\n");
				exit(0);
			}
		  if (set_Parity(fd,8,1,'N')== FALSE)
		  {
		    printf("Set Parity Error\n");
		    exit(1);
		  }
		
		  nwrite = write(fd,buff,512);
		  
		  printf("\nSent %d Bytes\n\n",nwrite);
		  tcsetattr(fd,TCSANOW,&old_options);
		  sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.
		  close(fd);
		}		
	}
	else
	{
		fd = OpenDev(dev);
		tcgetattr( fd,&old_options);
		if (fd < 0)
		{
			printf("Can't Open Serial Port 0!\n");
			exit(0);
		}
	  if (set_Parity(fd,8,1,'N')== FALSE)
	  {
	    printf("Set Parity Error\n");
	    exit(1);
	  }
	
	  nwrite = write(fd,buff,512);
	  
	  printf("\nSent %d Bytes\n\n",nwrite);
	  tcsetattr(fd,TCSANOW,&old_options);
	  sleep(1);  // make sure all bytes are sent out. or we'll have to wait for 30 seconds.
	  close(fd);
	}
		   
  return 0;
}
Esempio n. 21
0
int Mouse::Loop()
{
    fd_set readfds;
    struct timeval timeout = {0, 10000};
    bool isDeviceAdd = false;

    if (access(DEVICE_PATH, 0) != 0) {
        printf("device do not exist\n");
        return -1;
    }

    /* open /dev/mouse */
    OpenDev();

    CursorBounds desireBounds;
    desireBounds.width = mWidth;
    desireBounds.height = mHeight;
    desireBounds.spotX = mSpotX;
    desireBounds.spotY = mSpotY;
    
    mDrawBitmaps = (char *)mDefaultBitmap->getPixels();

    printf("now draw default cursor bitmap\n");
    DrawCursor(desireBounds);
    printf("finish draw default cursor bitmap\n");

    while(mIsRunning)
    {
        readfds = mSelectFds;

        int retval;

        retval = select(mMaxFd + 1, &readfds, NULL, NULL, NULL);

        if (retval == 0) {
            printf("select time out\n");
            continue;
        }

        if (FD_ISSET(mUnixFd, &readfds)) {
            struct sockaddr_in address;
            int addrLength;
            int acceptFd = accept(mUnixFd, (struct sockaddr *)&address, &addrLength);
            if (acceptFd > mMaxFd) {
                mMaxFd = acceptFd;
            }

            mAcceptFds.add(String8("cursor"), acceptFd);
            FD_SET(acceptFd, &mSelectFds);
            printf("new connect accept\n");
        }

        if (FD_ISSET(mDeviceFd, &readfds)) {
            InputPosition tmpPos;
            bool isOK = true;
            int read_size = read(mDeviceFd, &tmpPos, sizeof(tmpPos));;
            if (read_size <= 0 && errno == ENODEV) {
                printf("device is closed\n");
                isOK = false;
            } else if(read_size > 0 && read_size % sizeof(tmpPos) != 0) {
                printf("read fd %d error\n", mDeviceFd);
                isOK = false;
            }

            if (isOK) {
                memcpy(&mPos, &tmpPos, sizeof(mPos));
                mMove = true;
            }
            DrawCursor(desireBounds);
            //printf("mouse move\n");
        }

        for (int i = 0;i < mAcceptFds.size();i++) {
            int acceptFd = mAcceptFds.valueAt(i);
            if (FD_ISSET(acceptFd, &readfds)) {
                CmdHeader header;
                int read_size;
                read_size = read(acceptFd, &header, sizeof(CmdHeader));
                if (read_size == 0) {
                    printf("remote close unix socket\n");
                    FD_CLR(acceptFd, &mSelectFds);
                    mAcceptFds.removeItemsAt(i);
                    close(acceptFd);
                    mWantChange = true;
                    mUpdateCursor = true;
                    if (mDrawBitmaps != NULL && !mUseDefaultBitmap) {
                        char *freeHeader = mDrawBitmaps - sizeof(CmdHeader) + sizeof(CursorBounds);
                        free(freeHeader);
                    }

                    desireBounds.width = mDefaultBitmap->width();
                    desireBounds.height = mDefaultBitmap->height();
                    desireBounds.spotX = IMAGE_HOT_X;
                    desireBounds.spotY = IMAGE_HOT_Y;

                    mUseDefaultBitmap = true;
                    mDrawBitmaps = mDefaultBitmap->getPixels();
                    DrawCursor(desireBounds);
                    continue;
                }
                char *data = (char *)malloc(sizeof(CmdHeader) + header.length);
                memcpy(data, &header, sizeof(CmdHeader));
                read_size = read(acceptFd, data + sizeof(CmdHeader), header.length);
                ProcessCmd(data, sizeof(CmdHeader) + header.length, desireBounds);
                DrawCursor(desireBounds);
                mUseDefaultBitmap = false;
            }
        }
    }

    return 0;
}