⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendpack.c

📁 该演示程序实现温度的采集与显示功能
💻 C
📖 第 1 页 / 共 2 页
字号:
	        for(i=0;i<ThisNode.MEMBERNUM;i++)
		{
		   SendData[11+i*2]  =ThisNode.MEMBERS[i].ID[0];
		   SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];	
		}			
	        MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
	        MACFlush();
	    #endif
	
            break;		
        case MSG_CAPTAIN_SENDMEMBERDATATOTAG:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

	         //上报的数据中不含RSSI信息
	    SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
	    for(i=0;i<=5;i++)cs+=SendData[i];
	    SendData[6] = cs;//checksum;
	    rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
	    SendData[8] = GroupChannelIdx;
	    SendData[9] = ThisNode.MEMBERNUM;
	    SendData[10] = MAX_GROUPMENBER_NUM;
	    for(i=0;i<ThisNode.MEMBERNUM;i++)
	    {
		SendData[11+i*2]  =ThisNode.MEMBERS[i].ID[0];
		SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];	
	    }			
	    MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
	    MACFlush();
	    break;		
		
        case MSG_CAPTAIN_CALLINGREQ:
            SendData[1] = ThisNode.MEMBERS[ThisNode.CALLINGIDX].ID[0];
            SendData[2] = ThisNode.MEMBERS[ThisNode.CALLINGIDX].ID[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

		SendData[5] = 4+3;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
		SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;			
	    SendData[11] = ThisNode.CALLINGPARAM;	
	    SendData[12] = NewChannelIdx;	
			
            MACPutArray(SendData, 13);
            MACFlush();

            break;

        case MSG_CAPTAIN_DISBANDGROUP:
            SendData[1] = 0xff;
            SendData[2] = 0xff;
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

		SendData[5] = 4+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
		SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;
            MACPutArray(SendData, 11);
            MACFlush();
            break;			

       case MSG_CAPTAIN_JOINACCEPT:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 4+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;
            MACPutArray(SendData, 11);
            MACFlush();

            break;


        case MSG_CAPTAIN_UNITEREQUEST:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 4+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;
            MACPutArray(SendData, 11);
            MACFlush();

            break;		


        case MSG_CAPTAIN_UNITEACCEPT:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 4+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;
            MACPutArray(SendData, 11);
            MACFlush();

            break;	

        case MSG_CAPTAIN_JOINWITHDATA:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;
			for(i=0;i<ThisNode.MEMBERNUM;i++)
			{
			   SendData[11+i*2]  =ThisNode.MEMBERS[i].ID[0];
			   SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
			}
			
            MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
            MACFlush();

            break;	

        case MSG_CAPTAIN_UNITESUCCESS:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 4+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;			
            MACPutArray(SendData, 11);
            MACFlush();

            break;	

        case MSG_CAPTAIN_CHANGECAPTAIN:
            SendData[1] = 0xff;
            SendData[2] = 0xff;
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 7+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;	
            SendData[11] = submacCurrentFrame.sub_source_addr.v[0];	
            SendData[12] = submacCurrentFrame.sub_source_addr.v[1];	
            SendData[13] = NewGroupChannel;				
				
            MACPutArray(SendData, 14);
            MACFlush();

            break;	

        case MSG_CAPTAIN_REPLACECAPTAIN:
            SendData[1] = 0xff;
            SendData[2] = 0xff;
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 7+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
            SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
			SendData[8] = GroupChannelIdx;	
            SendData[9] = ThisNode.MEMBERNUM;
            SendData[10] = MAX_GROUPMENBER_NUM;	
            SendData[11] = submacCurrentFrame.sub_source_addr.v[0];	
            SendData[12] = submacCurrentFrame.sub_source_addr.v[1];	
            SendData[13] = GroupChannelIdx;				
				
            MACPutArray(SendData, 14);
            MACFlush();

            break;	
			
			

        //////////////////////////////////////////////////////////////////////////

        case MSG_TAG_JOINREUEST:
            SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
            SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
            SendData[3] = macInfo.longAddr.v[0];
            SendData[4] = macInfo.longAddr.v[1];

			SendData[5] = 0+1;//len;
            for(i=0;i<=5;i++)cs+=SendData[i];
            SendData[6] = cs;//checksum;

            MACPutArray(SendData, 7);
            MACFlush();
            break;
            default:
                MACFlush();


    }
    // Mark it as ready to transmit
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -