ex
Fork of mbed-os-example-mbed5-blinky by
Diff: DuerOS-Light-SDK-v1.1.0/duer-os-light/src/iot-baidu-ota/baidu_ota_unpack/ota/inc/pack_include.h
- Revision:
- 47:9e361da97763
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DuerOS-Light-SDK-v1.1.0/duer-os-light/src/iot-baidu-ota/baidu_ota_unpack/ota/inc/pack_include.h Tue Jul 18 16:54:45 2017 +0800
@@ -0,0 +1,169 @@
+
+#ifndef _MBED_OTA_PACK_INCLUDE_
+#define _MBED_OTA_PACK_INCLUDE_
+#include <stdint.h>
+
+#define KEY_LEN 128
+
+#define _DEBUG_
+//#define _DEBUG_OUT_
+
+#ifndef _DEBUG_OUT_
+ #define MBEDPACK_DEBUG_PRINT bca_printf
+#else
+ #define MBEDPACK_DEBUG_PRINT printf
+#endif
+
+///
+/// package header
+typedef struct _package_header {
+
+ ///
+ /// 'mbed' verify tag
+ unsigned char tag[4];
+
+ ///
+ /// package header size
+ uint32_t header_size;
+
+ ///
+ /// package signature size : 1024 bits
+ uint32_t package_sig_size;
+ ///
+ /// package signature : include meta.json and all modules
+ unsigned char package_sig[KEY_LEN];
+
+ ///
+ /// meta.json signature size : 1024 bits
+ uint32_t meta_sig_size;
+ ///
+ /// meta.json signature
+ unsigned char meta_sig[KEY_LEN];
+
+ ///
+ /// meta.json size : used for decompress meta.json from package body
+ uint32_t meta_size;
+
+ ///
+ /// package size before decompress
+ uint32_t ori_package_size;
+
+} package_header_t;
+
+///
+/// all modules included in mbed package is 'js' and mbed executable '.bin' file
+typedef enum _module_type {
+ ModuleTypeALL,
+ ModuleTypeJS,
+ ModuleTypeSO,
+ ModuleTypeBIN,
+ ModuleTypeJSON,
+ ModuleTypeIMG
+} module_type_t;
+
+
+typedef struct _file_type_pair {
+ char* string;
+ module_type_t type;
+} file_type;
+
+
+typedef enum _package_type {
+ PackageTypeApp,
+ PackageTypeOS,
+ PackageTypeProfile,
+ PackageTypeUnknown
+} package_type_t;
+/*
+typedef enum {
+ false = 0,
+ true
+} bool;*/
+
+/*
+///
+/// package body modules info excluding meta.json
+typedef struct _module_info {
+
+ ///
+ /// module name : xx.js / xx.bin
+ unsigned char* name;
+
+ ///
+ /// module type : js / bin
+ module_type_t type;
+
+ uint32_t module_size;
+ uint8_t update;
+ unsigned char* version;
+ unsigned char* hw_version;
+
+ ///
+ /// module data
+ unsigned char* data;
+} module_info_t;
+
+///
+/// decompress info : used for extract meta data and modules array data
+typedef struct _decompress_info {
+
+ ///
+ /// decompressed meta data size
+ uint32_t decompress_meta_data_size;
+ ///
+ /// decompressed meta data from package body
+ unsigned char* decompress_meta_data;
+
+ ///
+ /// decompressed modules array data size
+ uint32_t decompress_module_data_size;
+ ///
+ /// decompressed modules array data from package body
+ unsigned char* decompress_module_data;
+} decompress_info_t;
+*/
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+typedef struct _module_info {
+
+ ///
+ /// module name : xx.js / xx.bin
+ unsigned char* name;
+
+ ///
+ /// module type : js / bin
+ module_type_t type;
+
+ uint32_t module_size;
+ uint8_t update;
+ unsigned char* version;
+ unsigned char* hw_version;
+ uint32_t offset; // offset from file begin
+
+} module_info_t;
+
+///
+/// meta info : used for extract meta data and modules array data
+typedef struct _meta_info {
+
+ ///
+ /// decompressed meta data size
+ uint32_t meta_data_size;
+
+ ///
+ /// decompressed module data offset
+ uint32_t module_data_offset;
+
+ ///
+ /// decompressed meta data
+ unsigned char* meta_data;
+
+ ///
+ /// json object
+ void* meta_object;
+} meta_info_t;
+
+#endif
+
+
