首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GPRS(Air202) Lua开发: GPIO输出高低电平

4.返回 首先要明确,返回的是一个函数 调用函数  XXXX(); 假设程序是 Relay1 =  pins.setup(pio.P0_2,1);  (设置GPIO2输出高电平) 后期设置输出高低电平可以这样...新建一个main.lua文件 ?...配置日志输出端口或者最后一次是调用log.openTrace(true,nil,921600)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false)即可 2、最后一次是调用...--如果默认满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长 --加载错误日志管理功能模块【强烈建议打开此功能】 --如下2行代码,只是简单的演示如何使用errDump...main.lua可以说是固定的. 由于我需要看门狗,网络指示灯 所以打开了这两个功能 ? 再者程序默认调用这个main.lua 我需要让模块调用我写的 GpioOut.lua 所以 ?

88620

五分钟技术分享|Lua语言的Require工作原理

替换为文件名,就是尝试加载的文件地址,多个分号分隔代表会从多个路径进行优先级查找。 require的模块存在哪儿? require的模块都存储在package.loaded。...loaded:table -- loaded:math -- loaded:coroutine -- loaded:main 这边出现了main文件名 require的唯一性 观察下面代码我们定义一个main.lua...main = {} print("load file main") return false 在调用的文件中: require "main" require "main" 输出: load file...main load file main 还有另外一种方式就是将package.loaded.main设置为nil,require的时候会发现loaded中存储的main找不到了,就会再次走加载流程。...main = {} print("load file main") return main 在调用的文件中: require "main" package.loaded.main = nil require

6610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GPRS(Air202) Lua开发: 下载和运行第一个程序

    如果下载中出现这种情况,请重新尝试下载即可 ? 下载运行第一个程序 选择下载lua脚本 ? ? lib是官方封装的库!用户写程序就是调用库里面的函数 选中所有的,对于初学者,全部添加即可 ?...程序正在打印AD电压 ? 咱们看一下adc程序 ?...lua开发都是文件加载文件的形式 官方做的是内部默认先加载 main.lua文件 打开main.lua看一下 记住一句话:lua开发没有软件编译器 就是用文本编辑器来编辑代码 推荐个编辑器: VSCode...https://code.visualstudio.com/ 当然,大家也可以用 EditPlus ,NotePad++ 等等 adc的文件就两个  main.lua  testAdc.lua main.lua...总结 首先需要下载Lod Lod只需要下载一次即可 每个Lod支持的功能不一样,占用内存大小也不一样 然后需要下载官方提供的lib lib是官方封装好的API函数,用户就是调用里面的函数实现自己的功能

    53320

    【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

    1.表(table)   (1)table 是 Lua 的一种数据结构,用于帮助我们创建不同的数据类型,如:数组、字典等;   (2)table 是一个关联型数组,你可以用任意类型的来作数组的索引,但这个不能是...nil,所有索引都需要用 "["和"]" 括起来;如果是字符串,还可以去掉引号和中括号; 即如果没有[]括起,则认为是字符串索引,Lua table 是不固定大小的,你可以根据自己需要进行扩容;   ...3.利用Lua实现多态   这里我们新建一个 Main.lua 将它作为我们程序的入口,在里面测试一下我们上面的代码是否如我们所期待的那样,Main.lua 代码如下: 1 require 'Class...11 a:test() -- 子类对象调用重写的方法   程序运行的输出结果如下: 1 1 11 1 0   首先我们实例化父类对象并调用父类中的方法...以Unity游戏开发举例,tolua/ulua是Unity游戏开发热更新方案中的一种,他们功能很强大,但是美中不足的一点就是它们没有提供面向对象的特性,所以在开发的时候,很多直接就是全局函数、全局变量和过程式的开发流程

    2.7K20

    深入剖析 Golang 程序启动原理 - 从 ELF 入口点到GMP初始化到执行 main!

    Entry point address: 0x45c220 那么 0x45c220 这个位置对应的是哪个函数呢?...不少 golang 的同学都有一种错误的认知,认为 runtime.GOMAXPROCS 限制的是 golang 中的线程数。这个认知是错误的。...在调用 malg 时传入了一个 _StackMin,这表示默认的栈大小,在 Golang 中的默认是 2048。 这也就是很多人所说的 Golang 中协程很轻量,只需要消耗 2 KB 内存的缘由。...malg 的时候会将传入的内存大小加上一个 _StackSystem 预留给系统调用使用,round2 函数会将传入的舍入为 2 的指数。...gp, inheritTime = runqget(_g_.m.p.ptr()) } if gp == nil { //当前P或者全局队列中获取可运行协程 //尝试从其它P中steal

    58330

    lua学习笔记

    在 Lua 中,全局变量被初始化为这个。 ( 不被内部任何地方使用。) 错误处理 由于 Lua 是一门嵌入式扩展语言,其所有行为均源于宿主程序中 C 代码对某个 Lua 库函数的调用。...所以,在编译或运行 Lua 代码块的过程中,无论何时发生错误, 控制权都返回给宿主,由宿主负责采取恰当的措施(比如打印错误消息)。 元表及元方法 Lua 中的每个都可以有一个 元表。...所有没有显式声明为局部变量的变量名都被当做全局变量。 对全局变量 x 的操作等价于操作 _ENV.x。 在变量的首次赋值之前,变量的均为 nil。...每次迭代,迭代器函数都会被调用以产生一个新的, 当这个nil 时,循环停止。...栈 Lua 使用一个 虚拟栈 来和 C 互传。 栈上的的每个元素都是一个 Lua nil,数字,字符串,等等)。每次调用的栈都是全新的。

    94020

    自学成菜-流水账学习法lua入门

    a else return b end end value = getNumber() print(value) 声明a,b两个全局变量,声明了一个函数返回最大,其中需要注意的就是...并且此示例程序还演示了多返回的写法,和go很类似 接收_可忽略参数 迭代文件中每行io.lines 迭代table pairs 迭代数组ipairs 迭代单词string.gmatch 控制结构 if...return user.name,user.age end function test.getList() return 'list','list'; end return test main.lua...当你给表的一个缺少的索引赋值,解释器就会查找__newindex 元方法:如果存在则调用这个函数而不进行赋值操作。...Account:new(conf)等同于Account.new(self, conf),相当于将调用者自身当做第一个参数,使用冒号调用就相当于隐式地传递self参数。

    1K30

    让我们从头做一个 MUD 吧!

    MudLib 与 MudOS 的关系 世界的时间线 MudOS/main.lua 这个世界有一个叫做“世界心脏(Heart Of World)”的唯一全局对象,所有在游戏中,会随着时间变化的对象,都需要通过...玩家发来的所有行为数据,“命令系统”都会尝试解释成一个“命令”,如果解释成功,就会去调用对应的“命令方法”。...end, --查找本身包含的内容物 --@param #table key 内容物的属性名,如果是nil则对比整个内容物体 --@param #table value 要查找的属性或者内容物本身...--@param #function fun是找到后的处理函数,形式fun(pos, con_obj) --@return #table 返回fun()的返回(仅限第一个返回)数值,或者是找到的对象数组...这里实现了最基本的“战斗状态”:只要发现了被标记为“敌人”的角色,就调用“战斗系统”发起攻击。

    17810

    XML获取当前节点信息

    在所有情况下,如果没有当前节点,将抛出一个错误。LocalName当前元素节点的本地名称。如果访问其他类型节点的此属性,则会引发错误。Namespace当前元素节点的命名空间URI。...如果尝试访问其他类型节点的此属性,则会引发错误。NamespaceIndex当前元素节点的命名空间的索引。...如果尝试访问其他类型节点的此属性,则会引发错误Nil如果xsi:nil或xsi:null为true,则等于true;如果此元素节点为1,则等于1。否则,此属性等于False。...NodeData字符节点的。NodeId当前节点ID。 可以设置此属性以导航到另一个节点。NodeType当前节点的类型,如前一节所述。QName元素节点的Q名称。...,"Nil=" _ node.Nil w !,"NodeData=" _ node.NodeData w !,"NodeId=" _ node.NodeId w !

    1.6K50

    高性能伪事务之Lua in Redis

    redis命令执行结果返回错误时, redis.call()将返回给调用者一个错误,而redis.pcall()会将捕获的错误以Lua表的形式返回 redis.call() 和 redis.pcall(...的 Nil 回复和 Nil 多条回复转换成 Lua 的布尔 false Lua 到 Redis 的转换表。...沙箱(sandbox)和最大执行时间 脚本应该仅仅用于传递参数和对 Redis 数据进行处理,它不应该尝试去访问外部系统(比如文件系统),或者执行任何系统调用。...数据类型转换 在Lua脚本中使用call与pcall调用Redis命令时,就需要将Lua的数据类型转成Redis的数据类型,同时Redis调用的返回又需要转回到Lua的数据类型。...{1,2,3.3333,'foo',nil,'bar'}" 0 1) (integer) 1 2) (integer) 2 3) (integer) 3 4) "foo" Redis提供了帮助生成状态与错误的方法

    2.3K20

    《快学 Go 语言》第 10 课 —— 错误与异常

    通常一个名字如果是小写字母开头,那么它在包外就是不可见的,不过 error 是内置的特殊名称,它是全局可见的。 编写一个错误对象很简单,写一个结构体,然后挂在 Error() 方法就可以了。...下面我们通过读文件来尝试一下 Go 语言的错误处理,读文件需要使用内置的 os 包。...除了错误之外,还有一个地方需要两个返回,那就是字典,通过第二个返回来告知读取的结果是零还是根本就不存在。...另外还有一个需要特别注意的是因为字符串的零是空串而不是 nil,你不好从字符串内容本身判断出 Redis 是否存在这个 key 还是对应 key 的 value 为空串,需要通过返回错误信息来判断...= nil { fmt.Println("error catched", err) } }() 尾部还有个括号是怎么回事,为什么还需要这个括号呢?它表示对匿名函数进行了调用

    43230

    Golang框架实战-KisFlow流式计算框架(12)-基于反射自适应注册FaaS形参类型

    containsKisFlow {// 不包含kis.Flow类型的形参,返回错误return nil, errors.New("function parameters must have kis.Flow...containsCtx {// 不包含context.Context类型的形参,返回错误return nil, errors.New("function parameters must have context...)// 取出第一个返回,如果是nil,则返回nilret := retValues[0].Interface()if ret == nil {return nil}// 如果返回是error类型,则返回...11.2.3 默认的默认的Serialize实例在serialize的接口定义中,定义一个全局默认的序列化实例,defaultSerialize。...)// 取出第一个返回,如果是nil,则返回nilret := retValues[0].Interface()if ret == nil {return nil}// 如果返回是error类型,则返回

    9210

    P2P RTMFP Server - MonaServer 中事件(Event)的基本使用

    ,这个事件在以下3中情况中才会出现: 当对应的app下面的main.lua文件被编辑,app被重启过(也就是关闭再打开) 当你删掉MonaServer对应的app时 当MonaServer被停掉时...当有新的客户端连接上来时会调用这个事件,第一个参数是Client对象, 并且这个参数依赖于对应的协议(例如RTMP、RTSP、HTTP、WebSocket均有不同) 最后你可以返回一个表发送一些信息给...时间信息描述区域包含了错误信息。 可以拒绝一个客户端并且不给任何错误信息, event.info.description 区域会默认包含“client rejected”....返回与onRendezVousUnknown(Protocol, Peerid)的返回值完全相同。这个是在Client链接过来的第一数据包时触发的。...第一个地址参数 是客户端的地址address, path参数表示连接的路径,properties参数是一个HTTP形式的URL的连接,和attempts参数指示尝试连接的数量 (开始1和增加在每次尝试)

    94320

    Lua+OpenResty快速入门

    在默认情况下,变量总是认为是全局的,如果未提前赋值,默认为nil: 要想声明一个局部变量,需要使用local来声明 如果是局部变量,没有在某个作用域内声明,而是声明在了全局区中,那么该局部变量的声明周期只存在于当前命令行中...nil是一种只有一个nil的类型,它的作用可以用来与其他所有进行区分,也可以当想要移除一个变量时,只需要将该变量名赋值为nil,垃圾回收就会会释放该变量所占用的内存。...,db为nil,err为错误描述信息 语法: db,err = mysql:new() (3)connect 尝试连接到一个MySQL服务器 语法:ok,err=db:connect(options...如果成功,则返回1;如果出现任何错误,则将返回nil错误描述。 语法:db:close() (6)send_query 异步向远程MySQL发送一个查询。...} 返回: res:操作的结果集 err:错误信息 errcode:MySQL的错误码,比如1064 sqlstate:返回由5个字符组成的标准SQL错误码,比如42000

    2.2K10

    几个祖传代码不遵守就想骂的代码规范

    slice、map、chan、struct指针使用前必须先初始化 未初始化的map 默认nil , 可以对nil map进行读取,但是写入会直接panic var aMap map[string...} struct指针默认为nil , 未初始化直接使用,假如程序逻辑里是查不到数据就不对指针指向的struct进行复制,后续逻辑代码再使用指针引用struct里的字段进行判断时会因为尝试nil pointer...解引用直接panic func QueryData(a int) (data *Data, err error) { // data 返回直接使用时,默认是nil // 确保安全应该先对...= nil { return err } if dataP.State == STATE_ACTIVE { // 此处有可能尝试nil pointer进行解引用...错误案例 for _, v := range data { if v.F1 == 1 { v = process(v) if err := v.Call(); err == nil

    10310
    领券