ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers IOtaUpdater.h Source File

IOtaUpdater.h

00001 /*
00002  * IOtaUpdater.h
00003  *
00004  *  Created on: 2016-7-15
00005  *      Author: duanlian01
00006  */
00007 
00008 #ifndef IOTAUPDATER_H_
00009 #define IOTAUPDATER_H_
00010 
00011 #define PACKAGE_NAME_LENGTH_MAX (15)
00012 #define PACKAGE_TYPE_OS      1
00013 #define PACKAGE_TYPE_APP     2
00014 #define PACKAGE_NO_UPDATE    0
00015 #define PACKAGE_UPDATE       1
00016 
00017 struct meta_data_basic_info{
00018     char package_name[PACKAGE_NAME_LENGTH_MAX + 1];
00019     unsigned char package_type;
00020     unsigned char package_update;
00021 };
00022 
00023 
00024 #define MODULE_NAME_LENGTH_MAX (PACKAGE_NAME_LENGTH_MAX)
00025 #define MODULE_VERSION_LENGTH_MAX 15
00026 #define HARDWARE_VERSION_LENGTH_MAX 15
00027 #define MODULE_SIGNATURE_LENGTH     16
00028 #define MODULE_TYPE_BIN 1
00029 #define MODULE_NO_UPDATE 0
00030 #define MODULE_UPDATE 1
00031 
00032 struct module_info{
00033     char module_name[MODULE_NAME_LENGTH_MAX + 1];
00034     char module_version[MODULE_VERSION_LENGTH_MAX + 1];
00035     char module_support_hw_version[HARDWARE_VERSION_LENGTH_MAX + 1];
00036     unsigned char module_signature[MODULE_SIGNATURE_LENGTH];
00037     unsigned int module_size;
00038     unsigned char module_type;
00039     unsigned char module_update;
00040 };
00041 
00042 #define PACKAGE_INSTALL_PATH_MAX  255
00043 struct meta_data_install_info{
00044     char package_install_path[PACKAGE_INSTALL_PATH_MAX + 1];
00045     unsigned int module_count;
00046     struct module_info *module_list;
00047 };
00048 
00049 #define PACKAGE_VERSION_LENGTH MODULE_VERSION_LENGTH_MAX
00050 struct meta_data_update_info{
00051     char package_version[PACKAGE_VERSION_LENGTH];
00052 };
00053 
00054 struct meta_data_extension{
00055     unsigned int pair_count;
00056     char **keys;
00057     char **values;
00058 };
00059 
00060 struct package_meta_data{
00061     struct meta_data_basic_info basic_info;
00062     struct meta_data_install_info install_info;
00063     struct meta_data_update_info update_info;
00064     struct meta_data_extension extension_info;
00065 };
00066 
00067 struct IOtaUpdater
00068 {
00069     int (*notify_data_begin)();
00070     int (*notify_meta_data)(void *cxt, struct package_meta_data *meta);
00071     int (*notify_module_data)(void *cxt, unsigned int offset, unsigned char *data, unsigned int size);
00072     int (*notify_data_end)();
00073     int (*update_img_begin)();
00074     int (*update_img)();
00075     int (*update_img_end)();
00076 };
00077 
00078 #endif /* IOTAUPDATER_H_ */