OTA Tx and Rx over Mesh
This commit is contained in:
@ -22,6 +22,7 @@
|
||||
#define SERVER_CHECK_INTERVAL 30 //in seconds
|
||||
#define OTA_HTTPS_SEGMENT_SIZE 2048U
|
||||
#define OTA_PROGRESS_LOG_INTERVAL 7U
|
||||
#define OTA_MESH_SEGMENT_SIZE MESH_NETWORK_PAYLOAD_SIZE
|
||||
|
||||
#define ERROR_CHECK(x) if (err == ESP_OK) \
|
||||
{ \
|
||||
@ -32,17 +33,28 @@
|
||||
} \
|
||||
} \
|
||||
|
||||
enum otaMeshRole
|
||||
{
|
||||
Transmitter,
|
||||
Receiver
|
||||
};
|
||||
|
||||
typedef enum otaMeshRole OTA_MESH_ROLE_t;
|
||||
|
||||
esp_err_t errMeshOTAInitialize();
|
||||
|
||||
esp_err_t errOTAHTTPS(bool* pbNewOTAImage);
|
||||
esp_err_t errOTAMeshSlave(bool* pbNewOTAImage);
|
||||
esp_err_t errOTAMeshMaster(bool* pbNewOTAImage, mesh_addr_t* pMeshNodeAddr);
|
||||
esp_err_t errOTAMeshTransmit(mesh_addr_t* pMeshNodeAddr);
|
||||
esp_err_t errOTAMeshReceive(bool* pbNewOTAImage, mesh_addr_t* pMeshNodeAddr);
|
||||
|
||||
|
||||
//helper functions
|
||||
bool bNewerVersion(const char* pu8Local, const char* pu8Remote);
|
||||
esp_err_t errExtractVersionNumber(const char* pu8Data, uint32_t* pu32DataLenght, char* pc8RemoteVersionNumber);
|
||||
esp_err_t errFindImageStart(const char* pu8Data, uint32_t* pu32DataLenght, uint32_t* pu32StartOffset);
|
||||
void vPrintOTAProgress(const uint32_t* const pu32TotalImageSize, const uint32_t* const pu32BytesWritten);
|
||||
void vPrintOTAProgress(const uint32_t* const pu32TotalImageSize, const uint32_t* const pu32BytesWritten, OTA_MESH_ROLE_t eRole);
|
||||
void vAddAllNeighboursToQueue(void);
|
||||
esp_err_t errSendOTAVersionResponse(mesh_addr_t* meshReceiverAddr);
|
||||
esp_err_t errSendOTAVersionRequest(mesh_addr_t* meshReceiverAddr);
|
||||
|
@ -46,6 +46,7 @@
|
||||
#define CONFIG_MESH_ROUTE_TABLE_SIZE 50
|
||||
#endif
|
||||
|
||||
#define MESH_NETWORK_PAYLOAD_SIZE 1024U
|
||||
|
||||
struct meshPacket
|
||||
{
|
||||
@ -56,9 +57,10 @@ struct meshPacket
|
||||
OTA_Version_Response, //send own version in payload
|
||||
OTA_Data, //send image segment
|
||||
OTA_ACK, //ack image segment
|
||||
OTA_Complete //signal end of image
|
||||
OTA_Complete, //signal end of image
|
||||
OTA_Abort //abort OTA process
|
||||
} type;
|
||||
uint8_t au8Payload[1024];
|
||||
uint8_t au8Payload[MESH_NETWORK_PAYLOAD_SIZE];
|
||||
mesh_addr_t meshSenderAddr;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user