|  | @ -13,10 +13,10 @@ from RF24 import RF24, RF24_PA_LOW, RF24_PA_MAX, RF24_250KBPS | 
			
		
	
		
		
			
				
					|  |  | radio = RF24(22, 0, 1000000) |  |  | radio = RF24(22, 0, 1000000) | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | # Master Address ('DTU') |  |  | # Master Address ('DTU') | 
			
		
	
		
		
			
				
					
					|  |  | dtu_ser = 99912345678 |  |  | dtu_ser = 99978563412  # identical to fc22's | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | # inverter serial numbers |  |  | # inverter serial numbers | 
			
		
	
		
		
			
				
					
					|  |  | inv_ser = 99972220200 |  |  | inv_ser = 444473104619  # identical to fc22's #99972220200 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | # all inverters |  |  | # all inverters | 
			
		
	
		
		
			
				
					|  |  | #... |  |  | #... | 
			
		
	
	
		
		
			
				
					|  | @ -49,7 +49,7 @@ def compose_0x80_msg(dst_ser_no=72220200, src_ser_no=72220200, ts=None): | 
			
		
	
		
		
			
				
					|  |  |     """ |  |  |     """ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     if not ts: |  |  |     if not ts: | 
			
		
	
		
		
			
				
					
					|  |  |         ts = 1644758171 |  |  |         ts = 0x623C8ECF  # identical to fc22's for testing  # doc: 1644758171 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     # "framing" |  |  |     # "framing" | 
			
		
	
		
		
			
				
					|  |  |     p = b'' |  |  |     p = b'' | 
			
		
	
	
		
		
			
				
					|  | @ -61,7 +61,9 @@ def compose_0x80_msg(dst_ser_no=72220200, src_ser_no=72220200, ts=None): | 
			
		
	
		
		
			
				
					|  |  |     # encapsulated payload |  |  |     # encapsulated payload | 
			
		
	
		
		
			
				
					|  |  |     pp = b'\x0b\x00' |  |  |     pp = b'\x0b\x00' | 
			
		
	
		
		
			
				
					|  |  |     pp = pp + struct.pack('>L', ts)  # big-endian: msb at low address |  |  |     pp = pp + struct.pack('>L', ts)  # big-endian: msb at low address | 
			
		
	
		
		
			
				
					
					|  |  |     pp = pp + b'\x00' * 8    # of22 adds a \x05 at position 19 |  |  |     #pp = pp + b'\x00' * 8    # of22 adds a \x05 at position 19 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     pp = pp + b'\x00\x00\x00\x05\x00\x00\x00\x00' | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     # CRC_M |  |  |     # CRC_M | 
			
		
	
		
		
			
				
					|  |  |     crc_m = f_crc_m(pp) |  |  |     crc_m = f_crc_m(pp) | 
			
		
	
	
		
		
			
				
					|  | @ -107,7 +109,8 @@ def main_loop(): | 
			
		
	
		
		
			
				
					|  |  |         radio.stopListening()  # put radio in TX mode |  |  |         radio.stopListening()  # put radio in TX mode | 
			
		
	
		
		
			
				
					|  |  |         radio.setChannel(41) |  |  |         radio.setChannel(41) | 
			
		
	
		
		
			
				
					|  |  |         radio.openWritingPipe(ser_to_esb_addr(inv_ser)) |  |  |         radio.openWritingPipe(ser_to_esb_addr(inv_ser)) | 
			
		
	
		
		
			
				
					
					|  |  |         payload = compose_0x80_msg(src_ser_no=dtu_ser, dst_ser_no=inv_ser) |  |  |         ts = int(time.time()) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |         payload = compose_0x80_msg(src_ser_no=dtu_ser, dst_ser_no=inv_ser, ts=ts) | 
			
		
	
		
		
			
				
					|  |  |         print(f"{ctr:5d}: len={len(payload)} | " + " ".join([f"{b:02x}" for b in payload])) |  |  |         print(f"{ctr:5d}: len={len(payload)} | " + " ".join([f"{b:02x}" for b in payload])) | 
			
		
	
		
		
			
				
					|  |  |         radio.write(payload)  # will always yield 'True' b/c auto-ack is disabled |  |  |         radio.write(payload)  # will always yield 'True' b/c auto-ack is disabled | 
			
		
	
		
		
			
				
					|  |  |         ctr = ctr + 1 |  |  |         ctr = ctr + 1 | 
			
		
	
	
		
		
			
				
					|  | 
 |