blob: 9b1265629d95c9ba957bfd671a21dc14f864891d [file] [log] [blame]
b.liu4e243dc2023-11-27 11:20:00 +08001#include "lynq-qser-fota.h"
2#include "mbtk_type.h"
LUOJian9a2d3ba2024-01-05 17:14:41 +08003#include "mbtk_fota.h"
luojian487f2352024-08-16 17:51:48 +08004#include "mbtk_log.h"
LUOJian9a2d3ba2024-01-05 17:14:41 +08005
6
7char addr_buf[128]={0};
8int segment_size =0;
9
10
luojian778b0d92024-04-07 16:34:09 +080011int Process_flag = 0;
12
13
LUOJian9a2d3ba2024-01-05 17:14:41 +080014int fota_cb(int status, int percent)
15{
luojian487f2352024-08-16 17:51:48 +080016 LOGE("%d: percent: %d%%\n", percent/10, percent);
luojian600f8a72024-04-07 17:24:52 +080017 Process_flag = percent/10;
luojian778b0d92024-04-07 16:34:09 +080018 return 0;
19}
20
21int lynq_read_process(void)
22{
luojian600f8a72024-04-07 17:24:52 +080023 return Process_flag;
LUOJian9a2d3ba2024-01-05 17:14:41 +080024}
b.liu5fa9e772023-11-23 18:00:55 +080025
26int lynq_rock_main(int first_run)
27{
28 UNUSED(first_run);
luojian487f2352024-08-16 17:51:48 +080029 LOGE("%s, %d", __FUNCTION__, __LINE__);
LUOJian9a2d3ba2024-01-05 17:14:41 +080030 int ret = 0;
31
luojian487f2352024-08-16 17:51:48 +080032 LOGE("addr_buf:%s, segment_size:%d\n", addr_buf, segment_size);
LUOJian9a2d3ba2024-01-05 17:14:41 +080033 ret = mbtk_fota_init(fota_cb);
luojian487f2352024-08-16 17:51:48 +080034 if(strncmp(addr_buf, "http", 4) == 0)
LUOJian9a2d3ba2024-01-05 17:14:41 +080035 {
36
37 ret = mbtk_fota_fw_write_by_url(addr_buf, segment_size,10, 600);
38 }
39 else
40 {
41 ret =mbtk_fota_fw_write(addr_buf, segment_size);
42 }
43
44 if(ret)
45 {
luojian487f2352024-08-16 17:51:48 +080046 LOGE("lynq_rock_main fail\n");
LUOJian9a2d3ba2024-01-05 17:14:41 +080047 return -1;
48 }
49
50 mbtk_fota_done1(1);
b.liu5fa9e772023-11-23 18:00:55 +080051
52
53 return 0;
54}
55
56int lynq_fota_set_addr_value(char *value,int size)
57{
58 UNUSED(value);
59 UNUSED(size);
luojian487f2352024-08-16 17:51:48 +080060 LOGE("%s, %d", __FUNCTION__, __LINE__);
b.liu5fa9e772023-11-23 18:00:55 +080061
LUOJian9a2d3ba2024-01-05 17:14:41 +080062 if(value == NULL)
63 {
64 return -1;
65 }
66
67 memset(addr_buf, 0, sizeof(addr_buf));
68 memcpy(addr_buf, value, strlen(value));
69 segment_size = size;
70
luojian487f2352024-08-16 17:51:48 +080071 LOGE("addr_buf:%s, value:%s\n", addr_buf, value);
72 LOGE("segment_size:%d, size:%d\n", segment_size, size);
b.liu5fa9e772023-11-23 18:00:55 +080073
74 return 0;
75}
76
77int lynq_fota_nrestart(void)
78{
luojian487f2352024-08-16 17:51:48 +080079 LOGE("%s, %d", __FUNCTION__, __LINE__);
LUOJian9a2d3ba2024-01-05 17:14:41 +080080 int ret = 0;
81
luojian487f2352024-08-16 17:51:48 +080082 LOGE("addr_buf:%s", addr_buf);
LUOJian9a2d3ba2024-01-05 17:14:41 +080083 ret = mbtk_fota_init(fota_cb);
luojian487f2352024-08-16 17:51:48 +080084 if(strncmp(addr_buf, "http", 4) == 0)
LUOJian9a2d3ba2024-01-05 17:14:41 +080085 {
86 ret = mbtk_fota_fw_write_by_url(addr_buf, segment_size,10, 600);
87 }
88 else
89 {
90 ret =mbtk_fota_fw_write(addr_buf, segment_size);
91 }
92
93 if(ret)
94 {
luojian487f2352024-08-16 17:51:48 +080095 LOGE("lynq_fota_nrestart fail\n");
LUOJian9a2d3ba2024-01-05 17:14:41 +080096 return -1;
97 }
b.liu5fa9e772023-11-23 18:00:55 +080098
99 return 0;
100}
101
102int lynq_get_upgrade_status(void)
103{
luojian487f2352024-08-16 17:51:48 +0800104 LOGE("%s, %d", __FUNCTION__, __LINE__);
b.liu5fa9e772023-11-23 18:00:55 +0800105
LUOJian9a2d3ba2024-01-05 17:14:41 +0800106 return mbtk_fota_status();
b.liu5fa9e772023-11-23 18:00:55 +0800107}
108
luojian17de8c52024-05-31 09:46:11 +0800109int lynq_get_reboot_upgrade_status(void)
110{
111 return mbtk_fota_get_asr_reboot_cnt_flag();
112}
113