Beispiel #1
0
void set_temporary_DestAddr(unsigned short DestAddr)
{
	unsigned char wbuf[6],rbuf[5];
	unsigned char rlen = 0;
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;  
	wbuf[3] = enSetDestAddr; 
	wbuf[4] = DestAddr >> 8;
	wbuf[5] = DestAddr;
	//do
	//{
		printf("start to set DestAddr to 0x%04x\r\n",DestAddr);
		WriteComPort(wbuf, 6);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	//}while(rlen != 5);
/*	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enSetDestAddr)
		{
			if(rbuf[4] == 0x00)
			{
				printf("set DestAddr success...\r\n");
				return;
			}
		}
	}
	printf("set DestAddr error...\r\n"); */
}
Beispiel #2
0
void set_temporary_io_level(unsigned short DstAddr,unsigned char IO_Level)
{
	unsigned char wbuf[7],rbuf[7];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enSetIoStatus;
	wbuf[4] = DstAddr >> 8;
	wbuf[5] = DstAddr;
	wbuf[6] = IO_Level;

	do
	{
		printf("start to set 0x%04x node's io_level to 0x%02x\r\n",DstAddr,IO_Level);
		WriteComPort(wbuf, 7);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 7);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enSetIoStatus)
		{
			if(rbuf[6] == 0x00)
			{
				printf("set node 0x%02x%02x io_level to 0x%02x success...\r\n",rbuf[4],rbuf[5],IO_Level);
				return;
			}
		}
	}
	printf("set node's io_level error...\r\n");
}
Beispiel #3
0
void set_temporary_channel(unsigned char channel)
{
	unsigned char wbuf[5],rbuf[5];
	unsigned char rlen = 0;
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;  
	wbuf[3] = enSetChannel;  
	wbuf[4] = channel;
	do
	{
		printf("start to set temp channel to %d\r\n",channel);
		WriteComPort(wbuf, 5);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 5);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enSetChannel)
		{
			if(rbuf[4] == 0x00)
			{
				printf("set temp channel success...\r\n");
				return;
			}
		}
	}
	printf("set temp channel error...\r\n"); 
}
Beispiel #4
0
unsigned short read_temporary_adc_value(unsigned short DstAddr)
{
	unsigned char wbuf[7],rbuf[8];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enReadAdcValue;
	wbuf[4] = DstAddr >> 8;
	wbuf[5] = DstAddr;
	wbuf[6] = 0x01;
	do
	{
		printf("start to read 0x%04x node's adc_value...\r\n",DstAddr);
		WriteComPort(wbuf, 7);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 8);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enReadAdcValue)
		{
			printf("read node 0x%02x%02x adc_value is 0x%02x%02x\r\n",rbuf[4],rbuf[5],rbuf[6],rbuf[7]);
			return ((rbuf[6] << 8) | rbuf[7]);
		}
	}
	printf("read node's adc_value error...\r\n");
	return 0;
}
Beispiel #5
0
bool ControlUnit::IsControlUnit(HANDLE handle)
{
	short response = 0;
	if (!WriteComPort(handle, "Hello\n", 6)) return false;
	if (!ReadComPort(handle, &response, 2)) return false;
	return (response == RESPONSE_CODE);
}
Beispiel #6
0
void set_channel_nv(unsigned char nv)
{
    unsigned char i,sum = 0;  
    unsigned char wbuf[6],rbuf[5];
    unsigned char rlen = 0;
    wbuf[0] = 0xab;
    wbuf[1] = 0xbc;
    wbuf[2] = 0xcd;
    wbuf[3] = enSetChannelNv;
    wbuf[4] = nv;
    for(i = 0;i < 5;i++)
	sum += wbuf[i];
    wbuf[5] = sum;
    while(rlen != 5)
    {
		printf("start to set channel to %d...\r\n",nv);
    	WriteComPort(wbuf, 6);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
    }
    if(rbuf[0] == 0xab && rbuf[1] == 0xbc && rbuf[2] == 0xcd)
    {
		if(rbuf[3] == enSetChannelNv)
		{
			if(rbuf[4] == 0x00)
			{
				printf("set channel %d success!\r\n",nv);
				return;
			}
		}
    }
    printf("set channel %d failed!\r\n",nv);
}
Beispiel #7
0
unsigned char read_temporary_io_level(unsigned short DstAddr)
{
	unsigned char wbuf[6],rbuf[7];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enReadIoStatus;
	wbuf[4] = DstAddr >> 8;
	wbuf[5] = DstAddr;

	do
	{
		printf("start to read 0x%04x node's io_level...\r\n",DstAddr);
		WriteComPort(wbuf, 6);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 7);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enReadIoStatus)
		{
			printf("read node 0x%02x%02x io_level is:0x%02x\r\n",rbuf[4],rbuf[5],rbuf[6]);
			return rbuf[6];
		}
	}
	printf("read node's io_level error...\r\n");
	return 0;
}
Beispiel #8
0
unsigned char read_temporary_node_rssi(unsigned short DstAddr)
{
	unsigned char wbuf[6],rbuf[5];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enReadNodeRssi; 
	wbuf[4] = DstAddr >> 8;
	wbuf[5] = DstAddr;
	do
	{
		printf("start to read 0x%04x node's rssi...\r\n",DstAddr);
		WriteComPort(wbuf, 6);
		usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 5);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enReadNodeRssi)
		{
			printf("read node 0x%04x rssi is 0x%02x.\r\n",DstAddr,rbuf[4]);
			return rbuf[4];
		}
	}
	printf("read node's rssi error...\r\n");
	return 0;
}
Beispiel #9
0
int getch()
{
	int x;
	char tempch;
	
	while(ReadComPort(&tempch, 1)==0);
	x=tempch;
	WriteComPort(&tempch, 1);
	return x;
}
Beispiel #10
0
int getc(FILE *f)
{
	int x;
	char tempch;
	
	if(ReadComPort(&tempch, 1)==1)
	{
		x=tempch;
		WriteComPort(&tempch, 1);
		return x;
	}
	else
		return EOF;	
}
Beispiel #11
0
void search_node(void)
{
    unsigned char i, sum = 0;
    unsigned char wbuf[5],rbuf[13];
    unsigned char rlen = 0;
    //char inputbuf[2];
    wbuf[0] = 0xab;
    wbuf[1] = 0xbc;
    wbuf[2] = 0xcd;
    wbuf[3] = enSearchNode;
    for(i = 0;i < 4; i++)
	sum += wbuf[i];
    wbuf[4] = sum;
    do
    {
		printf("start to search node...\r\n");
    	        WriteComPort(wbuf, 5);
		/*if(fgets(inputbuf,2,stdin))
		{
			inputbuf[strlen(inputbuf)] = '\0';
			if(!strncmp((const char *)inputbuf,"q",1) || !strncmp((const char *)inputbuf,"c",1))
		 		return;
		}*/
		usleep(10000);
		rlen = ReadComPort(rbuf,20);
    }while(rlen != 13);
    if(rbuf[0] == 0xab && rbuf[1] == 0xbc && rbuf[2] == 0xcd)
    { 
		if(rbuf[3] == enSearchNode)
		{
			memcpy(&searchInfo,&rbuf[4],sizeof(search_info_t));
		}
    }
	else
	{
		printf("search error!\r\n");
		return;
	}
    printf("--------Search Node Info is:--------------\r\n");
    printf("device type is:0x%02x%02x\r\n",searchInfo.deviceType[0],searchInfo.deviceType[1]);
    printf("channel is:%d\r\n",searchInfo.channel);
    printf("rate is:0x%02x\r\n",searchInfo.rate);
    printf("Netnum is:0x%02x%02x\r\n",searchInfo.netNum[0],searchInfo.netNum[1]);
    printf("loacal address is:0x%02x%02x\r\n",searchInfo.localAddr[0],searchInfo.localAddr[1]);
    printf("run status is:%x\r\n",searchInfo.runStatus);
    printf("--------end-of-search-node-info------------\r\n");
}
Beispiel #12
0
int fgetc(FILE *f)
{
	int x;
	char tempch;
	
	while(ReadComPort(&tempch, 1)==0);
	x=tempch;
	WriteComPort(&tempch, 1);
	return x;
/*		 
	if(ReadComPort(&tempch, 1)==1)
	{
		x=tempch;
		return x;
	}
	else
		return EOF;
*/
}
Beispiel #13
0
void set_temporary_ShowSrcAddr(showSrcAddr_cmd_t cmd)
{
	unsigned char wbuf[5],rbuf[5];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enShowSrcAddr;  
	wbuf[4] = cmd;

	do
	{
		switch(cmd)
		{
			case show_enable:
				printf("start to set show src address\r\n");
				break;
			case show_disable:
			    printf("start to set not show src address\r\n");
				break;
			default:
			break;
		}
		WriteComPort(wbuf, 5);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	}while(rlen != 5);
	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enShowSrcAddr)
		{
			if(rbuf[4] == 0x00)
			{
				printf("set ShowSrcAddr success...\r\n");
				return;
			}
		}
	}
	printf("set ShowSrcAddr error...\r\n"); 
}
Beispiel #14
0
void set_temporary_cast_mode(cast_mode_t mode)
{
	unsigned char wbuf[5],rbuf[5];
	unsigned char rlen = 0;
	
	wbuf[0] = 0xde;
	wbuf[1] = 0xdf;
	wbuf[2] = 0xef;
	wbuf[3] = enSetUnicastOrBroadcast;
	wbuf[4] = mode;
	//do
	//{
		switch(mode)
		{
			case unicast:
				printf("start to set cast mode to unicast mode...\r\n");
				break;
			case broadcast:
				printf("start to set cast mode to broadcast mode...\r\n");
				break;
			default:
				break;
		}
		WriteComPort(wbuf, 5);
                usleep(100000);
		rlen = ReadComPort(rbuf,10);
	//}while(rlen != 5);
/*	if((rbuf[0] == 0xde)&&(rbuf[1] == 0xdf)&&(rbuf[2] == 0xef))
	{
		if(rbuf[3] == enSetUnicastOrBroadcast)
		{
			if(rbuf[4] == 0x00)
			{
				printf("set cast mode success...\r\n");
				return;
			}
		}
	}
	printf("set cast mode error...\r\n");*/
}
Beispiel #15
0
void write_local_cfg(void)
{
    int i,len = 0;
    unsigned char sum = 0;
    unsigned char buf[100],responsebuf[10];
    
    buf[0] = 0xab;
    buf[1] = 0xbc;
    buf[2] = 0xcd;
    buf[3] = enModifyCfg;
    buf[4] = stDevInfo.devLoacalNetAddr[0];
    buf[5] = stDevInfo.devLoacalNetAddr[1];
    memset(stDevInfo.devLoacalNetAddr,0,2);
    stDevInfo.devChannel = 15;
    stDevInfo.devPanid[0] = 0x00;
    stDevInfo.devPanid[1] = 0x00;
    stDevInfo.devDestNetAddr[0] = 0xFF;
    stDevInfo.devDestNetAddr[1] = 0xFE;
    memcpy(&buf[6],&stDevInfo,65);
    
    for(i = 0;i < (6 + 65);i++)
    {
        sum += buf[i];
    }
    buf[6 + 65] = sum;

    do
    {
	printf("start to write local cfg...\r\n");
        WriteComPort(buf, 6 + 65 + 1);
        usleep(10000);
        len = ReadComPort(responsebuf,10);
    }while(len != 7);
	
    usleep(100000);
    reset_zm516x();
    usleep(100000);
    printf("--------write local config success------\r\n");
}
Beispiel #16
0
void xbee_routine_thread_read_serial(void)
{
	uint32 len=0;
	static uint8 buf[255];
	while(1)
	{
		//printf("file : %s,line = %d\r\n",__FILE__,__LINE__);
		len = ReadComPort (buf, 255);
		//printf("file : %s,line = %d\r\n",__FILE__,__LINE__);
		if(len > 0)
		{
#if 0
			uint8 i=0;	printf("read serial : ");	for(i=0;i<len;i++)		printf("%02x " , *(buf+i));	puts(" ");
#endif
			//printf("file : %s,line = %d\r\n",__FILE__,__LINE__);
			MUTEX_LOCK(&mutex01_serial_rbuf);
			write_cqueue( &serial_rbuf , buf , len );
			MUTEX_UNLOCK(&mutex01_serial_rbuf);
		}
		usleep(20000);
	}
}
Beispiel #17
0
void write_remote_cfg(unsigned short DstAddr, dev_info_t *DevInfo )
{
    unsigned char i,sum = 0;
    unsigned char wbuf[72],rbuf[7];
    unsigned char rlen = 0;
	
    wbuf[0] = 0xab;
    wbuf[1] = 0xbc;
    wbuf[2] = 0xcd;
    wbuf[3] = enModifyCfg;
    wbuf[4] = DstAddr >> 8;
    wbuf[5] = DstAddr;
    memcpy(&wbuf[6],DevInfo,65);
    for(i = 0;i < (6 + 65);i++)
    {
        sum += wbuf[i];
    }
    wbuf[6 + 65] = sum;
	
    do{
		printf("start to write remote node 0x%04x cfg...\r\n",DstAddr);
    		WriteComPort(wbuf, 72);
		usleep(100000);
		rlen = ReadComPort(rbuf,10);
    }while(rlen != 7);
    if((rbuf[0] == 0xab)&&(rbuf[1] == 0xbc)&&(rbuf[2] == 0xcd))
    {
		if(rbuf[3] == enModifyCfg)
		{
			if(rbuf[6] == 0x00)
			{
				printf("write 0x%02x%02x node cfg success!\r\n",rbuf[4],rbuf[5]);
				return;
			}
		}
    }
    printf("write 0x%04x node cfg failed!\r\n",DstAddr);
}
Beispiel #18
0
void get_remote_info(unsigned short DstAddr)
{
    unsigned char i,sum = 0;
    unsigned char wbuf[7],rbuf[74];
    unsigned char rlen = 0;
	
    char str1[33];
    char str2[10];
	
    wbuf[0] = 0xab;
    wbuf[1] = 0xbc;
    wbuf[2] = 0xcd;
    wbuf[3] = enGetRemoteInfo;
    wbuf[4] = DstAddr >> 8;
    wbuf[5] = DstAddr;
    for(i = 0; i < 6; i++)
      sum += wbuf[i];
    wbuf[6] = sum;
    do{
		printf("start get remote node 0x%04x info...\r\n",DstAddr);
    		WriteComPort(wbuf, 7);
		usleep(100000);
		rlen = ReadComPort(rbuf,80);
		printf("response_len is:%d\r\n",rlen);
    }while(rlen < 74);
    if((rbuf[0] == 0xab)&&(rbuf[1] == 0xbc)&&(rbuf[2] == 0xcd))
    {
		if(rbuf[3] == enGetRemoteInfo)
		{
			memcpy(&remoteDevInfo,&rbuf[4],sizeof(dev_info_t));
		}
    }
    else
    {	
		printf("get info failed!\r\n");
		return;
    }
	
	
    memcpy(&remoteDevInfo,&rbuf[4],sizeof(dev_info_t));   
    printf("----remote device info is below:-----\r\n");
    printf("Device name is:%s\r\n",remoteDevInfo.devName);
    printf("Device password is:%s\r\n",remoteDevInfo.devPwd);
    printf("Device type is:");
    switch(remoteDevInfo.devMode)
    {
        case 0:
        printf("End Device\r\n");
        break;
        case 1:
        printf("Router Device\r\n");
        break;
        default:
        printf("unknown\r\n");
        break;
    }
    printf("channel id is: %d\r\n",remoteDevInfo.devChannel);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",remoteDevInfo.devPanid[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("panid is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",remoteDevInfo.devLoacalNetAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("loacal net address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 8;i++)
    {
        sprintf(str2,"%02x",remoteDevInfo.devLoacalIEEEAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("loacal IEEE address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",remoteDevInfo.devDestNetAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("dest net address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 8;i++)
    {
        sprintf(str2,"%02x",remoteDevInfo.devDestIEEEAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("dest IEEE address is: 0x%s\r\n",str1);

    
    
    printf("Device power level is: %d\r\n",remoteDevInfo.devPowerLevel);
    printf("Retry num is: %d\r\n",remoteDevInfo.devRetryNum);
    printf("Retry time slot is: %d ms\r\n",remoteDevInfo.devTranTimeout * 10);

    printf("Device uart serial baudrate is :");
    switch(remoteDevInfo.devSerialRate)
    {
        case 1:
        printf("2400\r\n");
        break;
        case 2:
        printf("4800\r\n");
        break;
        case 3:
        printf("9600\r\n");
        break;
        case 4:
        printf("19200\r\n");
        break;
        case 5:
        printf("38400\r\n");
        break;
        case 6:
        printf("57600\r\n");
        break;
        case 7:
        printf("115200\r\n");
        break;
        default:
        printf("unknown\r\n");
        break;
    }
	printf("-------end-of-remote-device-info-------\r\n");
	
}
Beispiel #19
0
int getKey()
{
	char tempch;
	if (ReadComPort(&tempch, 1)==0) return 0;
	else return 1;
}
Beispiel #20
0
void read_local_cfg(void)
{
    unsigned char wbuf[255],rbuf[255];
    int len = 0;
    
    char str1[33];
    char str2[10];

    int i;
    
    wbuf[0] = 0xab;
    wbuf[1] = 0xbc;
    wbuf[2] = 0xcd;
    wbuf[3] = enReadLoacalCfg;
    wbuf[4] = wbuf[0] + wbuf[1] + wbuf[2] + wbuf[3];
    do{
        printf("get device info...\r\n");
        WriteComPort(wbuf, 5);
        usleep(100000);
        len = ReadComPort(rbuf,255);
        printf("device response data length is %d\r\n",len);
    }while(len < 65);
    
    memcpy(&stDevInfo,&rbuf[4],65);
    

    printf("--------------read begin-----------------\r\n");
    // display device info
    printf("Device name is:%s\r\n",stDevInfo.devName);
    printf("Device password is:%s\r\n",stDevInfo.devPwd);
    printf("Device type is:");
    switch(stDevInfo.devMode)
    {
        case 0:
        printf("End Device\r\n");
        break;
        case 1:
        printf("Router Device\r\n");
        break;
        default:
        printf("unknown\r\n");
        break;
    }
    printf("channel id is: %d\r\n",stDevInfo.devChannel);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",stDevInfo.devPanid[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("panid : 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",stDevInfo.devLoacalNetAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("loacal net address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 8;i++)
    {
        sprintf(str2,"%02x",stDevInfo.devLoacalIEEEAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("loacal IEEE address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 2;i++)
    {
        sprintf(str2,"%02x",stDevInfo.devDestNetAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("dest net address is: 0x%s\r\n",str1);
    strcpy(str1,"");
    for(i = 0;i < 8;i++)
    {
        sprintf(str2,"%02x",stDevInfo.devDestIEEEAddr[i]&0x0ff);
        strcat(str1,str2);
    }
    printf("dest IEEE address is: 0x%s\r\n",str1);

    
    
    printf("Device power level is: %d\r\n",stDevInfo.devPowerLevel);
    printf("Retry num is: %d\r\n",stDevInfo.devRetryNum);
    printf("Retry time slot is: %d ms\r\n",stDevInfo.devTranTimeout * 10);

    printf("Device uart serial baudrate is :");
    switch(stDevInfo.devSerialRate)
    {
        case 1:
        printf("2400\r\n");
        break;
        case 2:
        printf("4800\r\n");
        break;
        case 3:
        printf("9600\r\n");
        break;
        case 4:
        printf("19200\r\n");
        break;
        case 5:
        printf("38400\r\n");
        break;
        case 6:
        printf("57600\r\n");
        break;
        case 7:
        printf("115200\r\n");
        break;
        default:
        printf("unknown\r\n");
        break;
    }
	printf("----------end-of-device-info--------------\r\n");
    //printf("write local cfg\r\n");
    //write_local_cfg();
}