Пример #1
0
int main(void)
{
	uint8_t src_packet[128] = {0x05, 0x30, 0x00, 0x00, 0x0A};
	
	uint8_t rcvd_msg[128] = {0};
	uint8_t rcvd_payload[128] = {0};
	uint8_t rcvd_length;
	uint8_t rcvd_payloadLength;
	uint8_t rcvd_rssi;
	
	uint8_t Type;
	uint16_t Addr;
	uint8_t radio_channel;
	uint16_t radio_panID;
	
	Type = Type_Light;
	Addr = 0x0001;
	radio_channel = 18;
	radio_panID = 0x00AA;
	
	Initial(Addr, Type, radio_channel, radio_panID);
	setTimer(1,RETRANSMIT_PERIOD,UNIT_MS);
	
	while(1){
		
		// Periodically send the msg
		if(checkTimer(1)){
			RF_Tx(0xFFFF,src_packet,5);
		}
		
		// When received some packet
		if(RF_Rx(rcvd_msg, &rcvd_length, &rcvd_rssi)){
			getPayloadLength(&rcvd_payloadLength, rcvd_msg);
			getPayload(rcvd_payload, rcvd_msg, rcvd_payloadLength);
			
			// Check 1)header, 2)sequence number, 3)isACK field
			if(rcvd_payload[0]==0x05 && rcvd_payload[1]==0x30 && 
				 rcvd_payload[2]==src_packet[2] && rcvd_payload[3]==1){
				src_packet[2]++;
				// Change the payload here
			}
		}
		
		if(src_packet[2]==0x14)
			break;
	}
	
	while(1){
		if(checkTimer(1)){
			setGPIO(1,1);
		}	
	}
}
Пример #2
0
void broadcastSend(void)
{
	  uint8_t i;
		
		pTxData[FRAME_BYTE_HEADER] 			= 0xFF;
		pTxData[FRAME_BYTE_TYPE] 	 			= BROADCASTHEADER;
		pTxData[FRAME_BYTE_SRC_ID] 			= ID;
		pTxData[FRAME_BYTE_NUMOFSENSOR] = NUMOFSENSOR;
	
		pTxData[FRAME_BYTE_STYPE1] 			= TYPE_HEADING; 		 // type1: eCompass
		pTxData[FRAME_BYTE_SVALUE11] 		= flat_headingH;  		
		pTxData[FRAME_BYTE_SVALUE12] 		= flat_headingL; 	
	
		pTxData[FRAME_BYTE_STYPE2] 			= TYPE_SPEED; 			 // type2: velocity
		pTxData[FRAME_BYTE_SVALUE21]		= RealspeedH; 
		pTxData[FRAME_BYTE_SVALUE22] 		= RealspeedL;	
	
		pTxData[FRAME_BYTE_STYPE3] 			= 0x03; 						 // type3: GPS degree
		pTxData[FRAME_BYTE_SVALUE31]		= Lat_deg;
		pTxData[FRAME_BYTE_SVALUE32] 		= Long_deg;	 
	
		pTxData[FRAME_BYTE_STYPE4] 			= 0x04; 						  // type4: GPS minute
		pTxData[FRAME_BYTE_SVALUE41]		= Lat_min;  
		pTxData[FRAME_BYTE_SVALUE42] 		= Long_min;	
	
		pTxData[FRAME_BYTE_STYPE5] 			= 0x05; 					 	 // type5: GPS second
		pTxData[FRAME_BYTE_SVALUE51]		= Lat_sec;
		pTxData[FRAME_BYTE_SVALUE52]		= Long_sec;    	

		pTxData[FRAME_BYTE_STYPE6] 			= 0x06; 						 // type6: GPS direction
		pTxData[FRAME_BYTE_SVALUE61]		= Lat_dir;
		pTxData[FRAME_BYTE_SVALUE62]		= Long_dir;
		
		pTxData[FRAME_BYTE_STYPE7] 			= 0x07; 						 // type6: GPS direction
		pTxData[FRAME_BYTE_SVALUE71]		= Lat_dir;
		pTxData[FRAME_BYTE_SVALUE72]		= Long_dir;

		for(i=framelength;i<128;i++){
			pTxData[i]=0x00;
		}
		
//		pTxData[framelength] = CheckSum(pTxData, framelength);
		
		RF_Tx(0xFFFF, pTxData, framelength);
}