aidou101 发表于 2023-5-5 09:45:45

请教:Lua flash json多处地址写,读出错

本帖最后由 aidou101 于 2023-5-5 09:48 编辑

--初始化函数
function on_control_notify(screen,control,value)
      if screen == 0 and control == 9 and value == 0
      then
                w_json["ip"] = get_text(0, 1)
                w_json["DNS"] = get_text(0, 2)
                json_data = cjson.encode(w_json)
                write_flash_string(0, json_data)
                print(json_data)
                w_json["ip"] = get_text(0, 1)
                w_json["DNS"] = get_text(0, 2)
                json_data = cjson.encode(w_json)
                write_flash_string(16, json_data)
                print(json_data)
      end
      
      if screen == 0 and control == 10 and value == 0
      then
                r_json = read_flash_string(0)
                read_Jsonstr_flash = cjson.decode(r_json)
                print(read_Jsonstr_flash)
                set_text(0, 5, read_Jsonstr_flash['ip'])
               set_text(0, 6, read_Jsonstr_flash['DNS'])      
      end

      if screen == 0 and control == 3 and value == 0
      then
                send_json = cjson.encode(send_tb)
                set_text(0, 4, send_json)
      end

end见上代码,只有在读的时候改为最后一些写进去的地址,即上面的16 才可以;请教,是只允许有一个json的读写吗?
如果不是,上面的代码要如何修开,可以进行多个json的读写?

aidou101 发表于 2023-5-5 10:09:23

添加测试工程,便于复现。

If后要接end 发表于 2023-5-5 10:51:39

多地址注意后面写入的是否覆盖先前写入的数据

aidou101 发表于 2023-5-5 11:01:15

已解决:因为json 压缩成数组的尺寸问题导致;
改正方法:print("size of w json ", #json_data) +固定偏移5 即可。

15076765489 发表于 2023-5-6 21:39:11

aidou101 发表于 2023-5-5 11:01
已解决:因为json 压缩成数组的尺寸问题导致;
改正方法: +固定偏移5 即可。
...

哥,会U盘下载吗   有偿找个写U盘下载脚本的

aidou101 发表于 2023-5-8 10:18:06

15076765489 发表于 2023-5-6 21:39
哥,会U盘下载吗   有偿找个写U盘下载脚本的

可以啊,把需求讲讲看

15076765489 发表于 2023-5-15 09:02:23

aidou101 发表于 2023-5-8 10:18
可以啊,把需求讲讲看

留个联系方式
页: [1]
查看完整版本: 请教:Lua flash json多处地址写,读出错