mirror of
				https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
				synced 2025-10-31 03:14:16 +00:00 
			
		
		
		
	Bayang: generic frsky hub function
This commit is contained in:
		
							parent
							
								
									c866d07743
								
							
						
					
					
						commit
						a917227ddc
					
				| @ -230,32 +230,16 @@ static void __attribute__((unused)) BAYANG_check_rx(void) | |||||||
| 			//Flags
 | 			//Flags
 | ||||||
| 			//uint8_t flags = packet[3] >> 3;
 | 			//uint8_t flags = packet[3] >> 3;
 | ||||||
| 			// battery low: flags & 1
 | 			// battery low: flags & 1
 | ||||||
|  | 			telemetry_link=1; | ||||||
| 			#if defined HUB_TELEMETRY | 			#if defined HUB_TELEMETRY | ||||||
| 				// Multiplexed P, I, D values in packet[8] and packet[9].
 | 				// Multiplexed P, I, D values in packet[8] and packet[9].
 | ||||||
|     	        // The two most significant bits specify which term is sent.
 |     	        // The two most significant bits specify which term is sent.
 | ||||||
|         	    // Remaining 14 bits represent the value: 0 .. 16383	telemetry_in_buffer[6] = 4;
 |         	    // Remaining 14 bits represent the value: 0 .. 16383
 | ||||||
| 				telemetry_in_buffer[6]  = 0x04; | 				frsky_send_user_frame(0x24+(packet[8]>>6), packet[9], packet[8] & 0x3F );	//0x24 = ACCEL_X_ID, so ACCEL_X_ID=P, ACCEL_Y_ID=I, ACCEL_Z_ID=D
 | ||||||
| 				telemetry_in_buffer[7]  = 0x00; |  | ||||||
| 				telemetry_in_buffer[8]  = 0x5E; |  | ||||||
| 				telemetry_in_buffer[9]  = 0x24+(packet[8]>>6);	//0x24 = ACCEL_X_ID, so ACCEL_X_ID=P, ACCEL_Y_ID=I, ACCEL_Z_ID=D
 |  | ||||||
| 				uint8_t pos=11; |  | ||||||
| 				telemetry_in_buffer[10] = packet[9]; |  | ||||||
| 				if(telemetry_in_buffer[10] == 0x5D || telemetry_in_buffer[10] == 0x5E) |  | ||||||
| 				{// Byte stuffing... I'm not sure if we really care about these 2 values, may be it would be simpler and shorter to just send the value above or below.
 |  | ||||||
| 					telemetry_in_buffer[11] = telemetry_in_buffer[10] ^ 0x60; |  | ||||||
| 					telemetry_in_buffer[10] = 0x5D; |  | ||||||
| 					telemetry_in_buffer[6]++; |  | ||||||
| 					pos++; |  | ||||||
| 				} |  | ||||||
| 				telemetry_in_buffer[pos] = packet[8] & 0x3F; |  | ||||||
| 			#endif | 			#endif | ||||||
| 			telemetry_counter++; | 			telemetry_counter++; | ||||||
| 			if(telemetry_lost==0) | 			if(telemetry_lost) | ||||||
| 				#if defined HUB_TELEMETRY | 				telemetry_link=0;	// Don't send anything yet
 | ||||||
| 					telemetry_link=3; |  | ||||||
| 				#else |  | ||||||
| 					telemetry_link=1; |  | ||||||
| 				#endif |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	NRF24L01_SetTxRxMode(TXRX_OFF); | 	NRF24L01_SetTxRxMode(TXRX_OFF); | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ | |||||||
| #define VERSION_MAJOR		1 | #define VERSION_MAJOR		1 | ||||||
| #define VERSION_MINOR		3 | #define VERSION_MINOR		3 | ||||||
| #define VERSION_REVISION	2 | #define VERSION_REVISION	2 | ||||||
| #define VERSION_PATCH_LEVEL	26 | #define VERSION_PATCH_LEVEL	27 | ||||||
| 
 | 
 | ||||||
| //******************
 | //******************
 | ||||||
| // Protocols
 | // Protocols
 | ||||||
|  | |||||||
| @ -234,6 +234,11 @@ uint8_t packet_in[TELEMETRY_BUFFER_SIZE];//telemetry receiving packets | |||||||
| 		uint8_t	SportHead=0, SportTail=0; | 		uint8_t	SportHead=0, SportTail=0; | ||||||
| 	#endif | 	#endif | ||||||
| 
 | 
 | ||||||
|  | 	// Functions definition when required
 | ||||||
|  | 	#ifdef HUB_TELEMETRY | ||||||
|  | 		static void __attribute__((unused)) frsky_send_user_frame(uint8_t, uint8_t, uint8_t); | ||||||
|  | 	#endif | ||||||
|  | 
 | ||||||
| 	//RX protocols
 | 	//RX protocols
 | ||||||
| 	#if defined(AFHDS2A_RX_A7105_INO) || defined(FRSKY_RX_CC2500_INO) || defined(BAYANG_RX_NRF24L01_INO) || defined(DSM_RX_CYRF6936_INO) | 	#if defined(AFHDS2A_RX_A7105_INO) || defined(FRSKY_RX_CC2500_INO) || defined(BAYANG_RX_NRF24L01_INO) || defined(DSM_RX_CYRF6936_INO) | ||||||
| 		bool rx_data_started; | 		bool rx_data_started; | ||||||
|  | |||||||
| @ -594,6 +594,29 @@ packet_in[6]|(counter++)|00 01 02 03 04 05 06 07 08 09 | |||||||
| 0A     0F          5E 3A 06 00 5E 5E 3B 09 00 5E | 0A     0F          5E 3A 06 00 5E 5E 3B 09 00 5E | ||||||
| 05     10          5E 06 16 72 5E 5E 3A 06 00 5E | 05     10          5E 06 16 72 5E 5E 3A 06 00 5E | ||||||
| */ | */ | ||||||
|  | static void __attribute__((unused)) frsky_send_user_frame(uint8_t ID, uint8_t low, uint8_t high) | ||||||
|  | { | ||||||
|  | 	telemetry_in_buffer[6]  = 0x04;		// number of bytes in the payload
 | ||||||
|  | 	telemetry_in_buffer[7]  = 0x00;		// unknown?
 | ||||||
|  | 	telemetry_in_buffer[8]  = 0x5E;		// start of payload
 | ||||||
|  | 	telemetry_in_buffer[9]  = ID;		// ID must be less than 0x40
 | ||||||
|  | 	uint8_t pos=10; | ||||||
|  | 	uint8_t value = low; | ||||||
|  | 	for(uint i=0;i<2;i++) | ||||||
|  | 	{// Byte stuffing
 | ||||||
|  | 		if(value == 0x5D || value == 0x5E) | ||||||
|  | 		{// Byte stuffing
 | ||||||
|  | 			telemetry_in_buffer[pos+1] = value ^ 0x60; | ||||||
|  | 			telemetry_in_buffer[pos] = 0x5D; | ||||||
|  | 			telemetry_in_buffer[6]++;	// 1 more byte in the payload
 | ||||||
|  | 			pos += 2; | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 			telemetry_in_buffer[pos++] = value; | ||||||
|  | 		value = high; | ||||||
|  | 	} | ||||||
|  | 	telemetry_link |= 2;						// request to send frame
 | ||||||
|  | } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user