added payload.cpp and and payload.h
This commit is contained in:
		
							parent
							
								
									fe5da9358e
								
							
						
					
					
						commit
						12c6dcb0ff
					
				| @ -14,8 +14,8 @@ | ||||
| ;env_default = heltec | ||||
| ;env_default = ttgov1 | ||||
| ;env_default = ttgov2 | ||||
| env_default = ttgov21 | ||||
| ;env_default = ttgobeam | ||||
| ;env_default = ttgov21 | ||||
| env_default = ttgobeam | ||||
| ;env_default = lopy | ||||
| ;env_default = lopy4 | ||||
| ;env_default = fipy | ||||
|  | ||||
							
								
								
									
										89
									
								
								src/payload.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								src/payload.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,89 @@ | ||||
| 
 | ||||
| #include "globals.h" | ||||
| #include "payload.h" | ||||
| 
 | ||||
| TTNplain::TTNplain(uint8_t size) : maxsize(size) { | ||||
|   buffer = (uint8_t *)malloc(size); | ||||
|   cursor = 0; | ||||
| } | ||||
| 
 | ||||
| TTNplain::~TTNplain(void) { free(buffer); } | ||||
| 
 | ||||
| void TTNplain::reset(void) { cursor = 0; } | ||||
| 
 | ||||
| uint8_t TTNplain::getSize(void) { return cursor; } | ||||
| 
 | ||||
| uint8_t *TTNplain::getBuffer(void) { | ||||
|   //    uint8_t[cursor] result;
 | ||||
|   //    memcpy(result, buffer, cursor);
 | ||||
|   //    return result;
 | ||||
|   return buffer; | ||||
| } | ||||
| 
 | ||||
| uint8_t TTNplain::copy(uint8_t *dst) { | ||||
|   memcpy(dst, buffer, cursor); | ||||
|   return cursor; | ||||
| } | ||||
| 
 | ||||
| void TTNplain::addCount(uint16_t value1, uint16_t value2) { | ||||
|   cursor = TTN_PAYLOAD_COUNTER; | ||||
|   buffer[cursor] = (macs_wifi & 0xff00) >> 8; | ||||
|   buffer[cursor++] = macs_wifi & 0xff; | ||||
|   buffer[cursor++] = (macs_ble & 0xff00) >> 8; | ||||
|   buffer[cursor++] = macs_ble & 0xff; | ||||
| } | ||||
| 
 | ||||
| void TTNplain::addGPS(gpsStatus_t value) { | ||||
|   cursor = TTN_PAYLOAD_GPS; | ||||
|   buffer[cursor++] = value.latitude >> 24; | ||||
|   buffer[cursor++] = value.latitude >> 16; | ||||
|   buffer[cursor++] = value.latitude >> 8; | ||||
|   buffer[cursor++] = value.latitude; | ||||
|   buffer[cursor++] = value.longitude >> 24; | ||||
|   buffer[cursor++] = value.longitude >> 16; | ||||
|   buffer[cursor++] = value.longitude >> 8; | ||||
|   buffer[cursor++] = value.longitude; | ||||
|   buffer[cursor++] = value.satellites; | ||||
|   buffer[cursor++] = value.hdop >> 8; | ||||
|   buffer[cursor++] = value.hdop; | ||||
|   buffer[cursor++] = value.altitude >> 8; | ||||
|   buffer[cursor++] = value.altitude; | ||||
| } | ||||
| 
 | ||||
| void TTNplain::addConfig(configData_t value) { | ||||
|   cursor = TTN_PAYLOAD_CONFIG; | ||||
|   buffer[cursor++] = value.lorasf; | ||||
|   buffer[cursor++] = value.adrmode; | ||||
|   buffer[cursor++] = value.screensaver; | ||||
|   buffer[cursor++] = value.screenon; | ||||
|   buffer[cursor++] = value.countermode; | ||||
|   buffer[cursor++] = value.rssilimit >> 8; | ||||
|   buffer[cursor++] = value.rssilimit; | ||||
|   buffer[cursor++] = value.sendcycle; | ||||
|   buffer[cursor++] = value.wifichancycle; | ||||
|   buffer[cursor++] = value.blescantime; | ||||
|   buffer[cursor++] = value.blescan; | ||||
|   buffer[cursor++] = value.wifiant; | ||||
|   buffer[cursor++] = value.vendorfilter; | ||||
|   buffer[cursor++] = value.rgblum; | ||||
|   buffer[cursor++] = value.gpsmode; | ||||
|   memcpy(buffer + cursor, value.version, 10); | ||||
| } | ||||
| 
 | ||||
| void TTNplain::addStatus(uint16_t voltage, uint64_t uptime, float cputemp) { | ||||
|   cursor = TTN_PAYLOAD_STATUS; | ||||
|   buffer[cursor++] = voltage >> 8; | ||||
|   buffer[cursor++] = voltage; | ||||
|   buffer[cursor++] = uptime >> 56; | ||||
|   buffer[cursor++] = uptime >> 48; | ||||
|   buffer[cursor++] = uptime >> 40; | ||||
|   buffer[cursor++] = uptime >> 32; | ||||
|   buffer[cursor++] = uptime >> 24; | ||||
|   buffer[cursor++] = uptime >> 32; | ||||
|   buffer[cursor++] = uptime >> 16; | ||||
|   buffer[cursor++] = uptime >> 8; | ||||
|   buffer[cursor++] = (uint32_t) cputemp >> 24; | ||||
|   buffer[cursor++] = (uint32_t) cputemp >> 16; | ||||
|   buffer[cursor++] = (uint32_t) cputemp >> 8; | ||||
|   buffer[cursor++] = (uint32_t) cputemp; | ||||
| } | ||||
							
								
								
									
										36
									
								
								src/payload.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/payload.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| 
 | ||||
| #ifndef _PAYLOAD_H_ | ||||
| #define _PAYLOAD_H_ | ||||
| 
 | ||||
| #include <Arduino.h> | ||||
| 
 | ||||
| #define TTN_PAYLOAD_COUNTER 0 | ||||
| #define TTN_PAYLOAD_GPS 4 | ||||
| #define TTN_PAYLOAD_CONFIG 0 | ||||
| #define TTN_PAYLOAD_STATUS 0 | ||||
| 
 | ||||
| class TTNplain { | ||||
| public: | ||||
|   TTNplain(uint8_t size); | ||||
|   ~TTNplain(); | ||||
| 
 | ||||
|   void reset(void); | ||||
|   uint8_t getSize(void); | ||||
|   uint8_t *getBuffer(void); | ||||
|   uint8_t copy(uint8_t *buffer); | ||||
| 
 | ||||
|   // application payloads
 | ||||
|   void addCount(uint16_t value1, uint16_t value2); | ||||
|   void addGPS(gpsStatus_t value); | ||||
| 
 | ||||
|   // payloads for get rcommands
 | ||||
|   void addConfig(configData_t value); | ||||
|   void addStatus(uint16_t voltage, uint64_t uptime, float cputemp); | ||||
| 
 | ||||
| private: | ||||
|   uint8_t *buffer; | ||||
|   uint8_t maxsize; | ||||
|   uint8_t cursor; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user