18-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(GPRS程序部分说明)

https://www.cnblogs.com/yangfengwu/p/10896650.html

其实GPRS整体和Wi-Fi是一样的原理,就是用http把程序下载到对应的文件里面,然后运行

大家看我的程序的时候会发现他比WIFI多了个这个文件

复制代码

复制代码

module(...,package.seeall)


--方便其他文件之间互相访问
updata0 = nil
updata1 = nil
updata2 = nil
updata3 = nil
updata4 = nil
updata5 = nil
updata6 = nil
updata7 = nil
updata8 = nil
updata9 = nil

local USER_DIR_PATH = "/user_data"    --数据保存的位置
local filehandle;                     --所有的文件读取使用

local ABUpdataFile = "A"
updataFlage = false

--[[获取执行哪一份程序]]
filehandle=io.open(USER_DIR_PATH.."/ABUpdataFile.lua","r")--执行哪一份程序
if  filehandle then
    ABUpdataFile = filehandle:read("*all")--读出文件内容
    filehandle:close()--关闭文件
end

filehandle=io.open(USER_DIR_PATH.."/version1.lua","r")--读出云端版本
if  filehandle then
    if  filehandle:read("*all") ~= "0.0.0"  then
        updataFlage = true 
    end
    filehandle:close()--关闭文件
end

if  updataFlage == false  then
    if  ABUpdataFile == "A"  then
        print("run:A");
        updata0 = require "Aupdata0"
        updata1 = require "Aupdata1"
        updata2 = require "Aupdata2"
        updata3 = require "Aupdata3"
        updata4 = require "Aupdata4"
        updata5 = require "Aupdata5"
        updata6 = require "Aupdata6"
        updata7 = require "Aupdata7"
        updata8 = require "Aupdata8"
        updata9 = require "Aupdata9"
    else
        print("run:B");
        updata0 = require "Bupdata0"
        updata1 = require "Bupdata1"
        updata2 = require "Bupdata2"
        updata3 = require "Bupdata3"
        updata4 = require "Bupdata4"
        updata5 = require "Bupdata5"
        updata6 = require "Bupdata6"
        updata7 = require "Bupdata7"
        updata8 = require "Bupdata8"
        updata9 = require "Bupdata9"
    end
end

复制代码

复制代码

大家发没发现一个问题,WIFI使用的时候不需要 

 

 

只要是其它函数里面的全局变量,直接用就可以,但是GPRS不可以

 我为了可以文件之间互相访问,所以才这样弄的

 

 有没有疑问我为什么没有放到main.lua里面

其实一开始我就放到了mian.lua里面,但是发现main里面的变量只能使用...在别的文件里面不能对其赋值

大家如果不信自己可以测试下.....

另外,我的程序里面使用的复位是

 原因是我发现原先的sys.XXX 忘了具体函数了...复位以后呢!还会有残留的程序在里面运行

还有个要说的,其实和咱升级无关

那天有人问,设置了引脚为输出了,现在想读取引脚的状态怎么读,难道再设置为输入???搞笑...

其实直接可以读

 

https://www.cnblogs.com/yangfengwu/p/10991909.html

猜你喜欢

转载自blog.csdn.net/qq_14941407/article/details/93321677