Lua基础

2023-10-27

目录

Lua5.3参考手册

软件版本

日志及soc下载工具

os.date函数说明

os.date格式化符号

示例

显示效果

希望实现

实现思路

关于汉字显示的说明

​编辑编译方法可参考

示例代码

运行log记录

PS: eink - 墨水屏操作库

PS2

1、eink-1.54寸快刷墨水屏局部刷新模式下频闪;

2、eink墨水屏:日期、星期实时刷新显示;

3、eink墨水屏:墨水屏天气日历。


Lua5.3参考手册

Lua 5.3 参考手册 - 目录

软件版本

CORE-ESP32C3:LuatOS@ESP32C3 base 22.12 bsp V1003 32bit

日志及soc下载工具

luatools 版本:2.1.88

os.date函数说明

os.date ([format [, time]])

返回一个包含日期及时刻的字符串或表。 格式化方法取决于所给字符串 format。

如果提供了 time 参数, 格式化这个时间 (这个值的含义参见 os.time 函数)。 否则,date 格式化当前时间。

如果 format 以 '!' 打头, 日期以协调世界时格式化。 在这个可选字符项之后, 如果 format 为字符串 "*t", date 返回有后续域的表: year (四位数字),month (1–12),day (1–31), hour (0–23),min (0–59),sec (0–61), wday (星期几,星期天为 1 ), yday (当年的第几天), 以及 isdst (夏令时标记,一个布尔量)。 对于最后一个域,如果该信息不提供的话就不存在。

如果 format 并非 "*t", date 以字符串形式返回, 格式化方法遵循 ISO C 函数 strftime 的规则。

如果不传参数调用, date 返回一个合理的日期时间串, 格式取决于宿主程序以及当前的区域设置 (即,os.date() 等价于 os.date("%c"))。

在非 POSIX 系统上, 由于这个函数依赖 C 函数 gmtime 和 localtime, 它可能并非线程安全的。

os.date格式化符号

格式符

含义

具体示例

%a

一星期中天数的简写

(Fri)

%A

一星期中天数的全称

(Wednesday)

%b

月份的简写

(Sep)

%B

月份的全称

(May)

%c

日期和时间

(09/16/98 23:48:10)

%d

一个月中的第几天

(28)[0 - 31]

%H

24小时制中的小时数

(18)[00 - 23]

%I

12小时制中的小时数

(10)[01 - 12]

%j

一年中的第几天

(209)[01 - 366]

%M

分钟数

(48)[00 - 59]

%m

月份数

(09)[01 - 12]

%P

上午或下午

(pm)[am - pm]

%S

一分钟之内秒数

(10)[00 - 59]

%w

一星期中的第几天

(3)[0 - 6 = 星期天 - 星期六]

%W

一年中的第几个星期

(2)0 - 52

%x

日期

(09/16/98)

%X

时间

(23:48:10)

%y

两位数的年份

(16)[00 - 99]

%Y

完整的年份

(2016)

%%

字符串'%'

(%)

示例

        eink.print(25,70,os.date("%x"))

        eink.print(30,110,os.date("%X"))

        eink.print(30,150,os.date("%A"))

显示效果:

希望实现:

实现思路:

1、显示中文;

2、建立weekarry星期映射关系,索引下标0为星期日;

weekarray={"日","一","二","三","四","五","六"} --索引从1开始

os.date("%w")显示当前日期的星期数字(字符型),需转换为数字型,才能进行+1操作,与weekarry对应,拼合生成星期几的字符串,并显示

如:

--1、设置所要使用的汉字字库

eink.setFont(eink.font_opposansm10_chinese)

eink.print(5,70,os.date("%Y-%m-%d"))

eink.print(30,110,os.date("%X"))

--2、建立weekarry星期映射关系,索引下标0为星期日,

local weekarray={"日","一","二","三","四","五","六"} --索引从1开始

--os.date("%w")显示当前日期的星期数字(字符型),需转换为数字型,才能进行+1操作,与weekarry对应

--拼合生成星期几的字符串,并显示

eink.print(50,150,"星期"..weekarray[tonumber(os.date("%w")+1)])

关于汉字显示的说明:

必需在.\luatos-soc-idf5\luatos\include\luat_conf_bsp.h文件中打开font_opposansm10_chinese选项,该字库才能启用,之后再编译固件。

编译方法可参考:

合宙ESP32系列|自定义固件|在线云编译|本地编译|Windows|luat_conf_bsp.h|(2)、CORE-ESP32S3编译_打酱油的工程师的博客-CSDN博客

官方默认固件中有:font_opposansm10_chinese字体。

其他字体若未启用及编译,则无法显示汉字,会打印日志显示错误内容:

E/eink only font pointer is allow

示例代码:

    while true do

        eink.clear(1,0)

        eink.setFont(eink.font_opposansm10_chinese)

        eink.print(5,70,os.date("%Y-%m-%d"))

        eink.print(30,110,os.date("%X"))

        local weekarray={"日","一","二","三","四","五","六"} --索引从1开始

        eink.print(50,150,"星期"..weekarray[tonumber(os.date("%w")+1)])

        eink.show(30,110,1)

        sys.wait(500)--每秒刷新2次

    end

运行log记录:

[2023-02-04 14:23:26.942] I/main LuatOS@ESP32C3 base 22.12 bsp V1003 32bit

[2023-02-04 14:23:26.942] I/main ROM Build: Feb  4 2023 01:11:06

[2023-02-04 14:23:26.942] I/fs script zone as luadb

[2023-02-04 14:23:26.944] D/main loadlibs luavm 98296 14640 14736

[2023-02-04 14:23:26.944] D/main loadlibs sys   159544 59384 59384

[2023-02-04 14:23:27.390] D/eink spi setup complete, now setup epd

[2023-02-04 14:23:27.501] I/user.e-paper 1.54 Testing Go

[2023-02-04 14:23:31.723] I/user.e-paper 1.54 Testing End

PS: eink - 墨水屏操作库

https://wiki.luatos.com/api/eink.html

PS2:

基于LuatOS@ESP32C3 base 22.12 bsp V1003 32bit版本。

1、eink-1.54寸快刷墨水屏局部刷新模式下频闪;

        解决方案:设置清屏参数为: eink.clear(1,0)   --解决局部刷新频闪问题

2、eink墨水屏:日期、星期实时刷新显示

        CORE-ESP32C3|eink|日期格式化|IO11解锁|墨水屏操作库|SNTP自动同步|局部刷新|全局刷新|LuatOS-SOC接口|官方demo|学习(12):简单日期显示_打酱油的工程师的博客-CSDN博客

3、eink墨水屏:墨水屏天气日历。

CORE-ESP32C3|eink|墨水屏日历|天气API|LuatOS公共接口|气象要素数据V1|collectgarbage|LuatOS-SOC接口|官方demo|学习(13):墨水屏动态日历_esp32 日历_打酱油的工程师的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lua基础 的相关文章

  • 用Lua检查文件是否存在

    如何使用Lua检查文件是否存在 Try function file exists name local f io open name r if f nil then io close f return true else return fa
  • docker 单元测试设置

    我想为我的产品设置一个单元测试环境 我有一个基于 Lua 中的 nginx 构建的 Web 应用程序 它使用 mysql 和 redis 我认为 docker 会对此很有帮助 尽管我是 docker 的新手 我的应用程序运行在 centos
  • Lua中字符串的串联

    在许多语言中 您可以在变量赋值时连接字符串 我有一个使用 Lua 编程语言的场景 我需要将命令的输出附加到现有变量 Lua 中是否有与以下示例等效的功能 其他语言的例子 PERL filename checkbook filename tm
  • 如何在表格内打印表格的内容? [路亚]

    我想做的只是在表中打印表的内容 例如 local stats table1 tTable1 data 1 tTable2 data2 2 tTable3 data3 3 我并不真正关心表 1 或所有表 而是关心数据变量中的信息 我怎样才能打
  • Lua中如何去除字符串中的空格?

    我想从 Lua 中的字符串中删除所有空格 这是我尝试过的 string gsub str string gsub str string gsub str s 这似乎不起作用 如何删除所有空格 它有效 您只需分配实际结果 返回值 使用以下变体
  • 错误 main.lua:23:尝试索引 upvalue 'Menu' (布尔值)

    我正在尝试用 lua 和 love2d 制作一个主菜单 这是我第一次这样做 遗憾的是没有关于此事的教程 所以我自己尝试了一下 我一直遇到这个错误 我不知道如何解决它 请帮助 完整错误消息 错误main lua 23 尝试索引upvalue
  • 访问 Lua 类型元表

    显然 getmetatable 可以访问几种类型的元表 getmetatable getmetatable getmetatable newproxy true 然而 似乎您无法获取其他类型的元表 除了函数 似乎无法访问数字 布尔值或 ni
  • 如何在表中表示 nil

    假设我想存储一个元素列表 包括一些零值 值的位置很重要 我需要表示列表中给定位置处不存在值 这里有一个问题 a 1 2 3 nil 4 for k v in ipairs a do print k v end print a 4 print
  • 如何使用循环将字符串连接成一个?

    有人可以帮我解决字符串连接问题吗 我从寄存器读取数据 它的函数 utf regAddr length 我得到带有十进制数字的表格 然后将其转换为十六进制并循环字符串 我需要将这些字符串连接成一个 Lua中没有像 这样的操作符 functio
  • 在 lua 中使用相等运算符比较数字有多安全?

    在我的引擎中 我有一个用于脚本编写的 Lua VM 在脚本中 我写了这样的内容 stage stage 1 if stage 5 then end and objnum tonumber 5 if stage objnum 根据 Lua 来
  • 创建独立的 Lua 可执行文件

    有没有一种简单的方法可以从 Lua 脚本创建独立的 exe 文件 基本上这将涉及链接 Lua 解释器和脚本 我相信这是可能的 PLT 方案允许以相同的方式创建独立的可执行文件 但是到底是如何实现的呢 查看srlua http www tec
  • Corona/Box2D 检测与非移动静态物体的碰撞

    出于发帖原因 这是我正在尝试做的事情的简单版本 在屏幕上我有一个简单的圆形对象 它是静态的并且不会移动 然后用户可以拖放一条直线 如果该线穿过该圆圈 我希望触发碰撞事件 看来除非其中一个物体正在移动 否则永远不会检测到碰撞 绘制线条时能否检
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • Lua中如何获取目录列表

    我需要 LUA 中的目录列表 假设我的目录路径为 C Program Files 我需要该特定路径中所有文件夹的列表以及如何搜索该列表中的任何特定文件夹 Example 需要路径 C Program Files 中所有文件夹的列表 以下是上
  • 循环直到在表中找到 2 个特定值?

    我试图找到一种更聪明的方法来解决这个问题 这是与游戏相关的代码的摘录 它循环遍历每个背包的每个插槽 直到找到铲子和绳子 local continue local foundShovel foundRope for i 0 Container
  • 在 Corona sdk 上保存高分?

    我想保存游戏中创建的高分 并且当玩家点击高分按钮时可以在主菜单中看到 有人可以帮助我吗 您可以使用SQLITE https docs coronalabs com api library sqlite3 index html将高分保存到数据
  • 用于嵌入式服务器的 Web 技术

    我最近开始了一个针对嵌入式设备的新 Web 开发项目 并希望征求一些有关使用技术的建议 该设备将提供 HTML 页面 其中包括用于从 JSON 服务器检索数据的 AJAX 代码 我们暂时使用 Cherokee 作为 Web 服务器 但我们并
  • corona sdk中拖动物理对象

    我尝试在场景中拖动重力 0 0 的动态主体 我有一个主体类型为动态的正方形 以及一个主体类型为静态的图像 但是当将方形拖动到图像上时 它会产生一点力 但是可以超出图像并传递到另一边 如图所示 这是我拖动正方形的代码 local functi
  • Lua userdata:无法同时进行数组访问和方法

    我遇到了这个人的问题 Lua userdata数组访问及方法 https stackoverflow com questions 26970316 lua userdata array access and methods 其中 当我设置用
  • 使用 FastCGI 运行 Lua 脚本

    我目前正在尝试找出使用 FastCGI 与 lighttpd 或 Nginx 一起运行 Lua 脚本的方法 我唯一能挖到的是WSAPI http keplerproject github com wsapi 开普勒计划的一部分 但我想知道是

随机推荐

  • Spring Autowire自动装配

    在应用中 我们常常使用
  • C语言基础-选择语句之成绩判断

    文章目录 前言 一 C语言是什么 二 基础选择语句 1 if else 2 数据解读 3 switch case 总结 前言 只是基础 取悦自己 一 C语言是什么 官方解释 c语言是一门面向过程 抽象化的通用程序设计语言 广泛应用于底层开发
  • Vue使用echarts(完整版,解决各种报错)

    前言 Echarts 它是一个与框架无关的 JS 图表库 但是它基于Js 这样很多框架都能使用它 例如Vue 估计IONIC也能用 下次研究 因为我的习惯 每次新尝试做一个功能的时候 总要新创建个小项目 做做Demo 首先看自己电脑是否安装
  • k8s yml 样例

    文章目录 db deploy yml db service yml app deploy yml app service yml db deploy yml apiVersion apps v1beta1 kind Deployment m
  • linux报错 /bin/bash^M:解释器错误:没有那个文件或目录

    在Linux中运行脚本时 会出现linux报错 bin bash M 解释器错误 没有那个文件或目录 这是因为我们将在Windows下编写的脚本拷贝到Linux环境中运行时会出现运行不了的情况 主要还是Windows的换行符为 r n 而L
  • 2023电赛思路 E题:运动目标控制与自动追踪系统

    1 E题 运动目标控制与自动追踪系统 基本思路 1 1 实现步骤 设计红色光斑位置控制系统 选择合适的红色激光笔 并将其固定在一个二维电控云台上 使用电机和编码器来控制电控云台的水平和垂直运动 设计一个控制电路 可以通过输入控制信号来控制电
  • unity3d学习笔记-动画(3.导入动画)

    一 配置动画类型 在准备要导入 Unity 的动画时 动画师可以为每个单独的动画创建不同的文件 或者在一个文件中为所有内容制作动画 将包含多个动画的单个文件导入 Unity 时 可以在 剪辑 部分的导入设置中对其进行拆分 在这里 您可以定义
  • uniapp如何应用onNeedPrivacyAuthorization实现微信小程序隐私政策

    前言 微信小程序要求9 15日前实现隐私政策弹窗 但是uniapp文档一直没有更新 尝试直接使用wx onNeedPrivacyAuthorization 是可以生效的 步骤 在 微信小程序后台 的 设置 服务内容与声明 设置好小程序所需要
  • 【python】爬虫实战流程

    一 采集步骤 1 网页解析 2 引入第三方模块 import requests 请求数据 import json 数据解析 from jsonpath import jsonpath 数据解析 import pandas as pd 数据处
  • maven本地仓库已经有了所需的jar包,为什么还要去请求远程仓库

    问题 IDEA 中的maven 项目 一个jar包一直导入不进来 reimport 无效 从另一仓库把这个jar包拷贝到当前仓库 还是无效 mvn clean install e U 发现加载这个jar包时直接访问远程仓库 都没有从本地查找
  • win11安装xshell提示缺少mfc110.dll问题

    Download Visual C Redistributable for Visual Studio 2012 Update 4 from Official Microsoft Download Center
  • 微信 "{"errcode":-1,"errmsg":"system error"}"

    报这个json问题是因为你有一些参数没有 而产生的 例你没有写appid secret等的原因做成的 这个并不是微信服务器的问题 不要被其字面的意思混乱 唉 微信的提示 我也是醉了
  • Linux PCIe驱动框架分析(第三章)

    目录 项目背景 1 概述 2 流程分析 2 1 Device Tree 2 2 probe流程 2 3 中断处理 2 4 总结 项目背景 Kernel版本 4 14 ARM64处理器 使用工具 Source Insight 3 5 Visi
  • Qt基础:二、Qt4和Qt5兼容部分

    在pro中加入下面一句 greaterThan QT MAJOR VERSION 4 QT widgets 这句话的意思是QT版本超过4 就需要加上widgets
  • Angular ActivatedRoute 用法(官方文档

    允许访问与某出口中加载的组件关联路由信息 用于遍历 RouterState 树并从节点提取信息 查看 说明 class ActivatedRoute snapshot ActivatedRouteSnapshot url Observabl
  • printf()的用法

    http baike baidu com view 1427555 htm 原来做事情不仔细 每次看printf的用法都没懂过 但是也算蒙混过关 现在自己终于懂得生活 所以好好找了下 这篇文章确实不错 和大家分享一下 printf 函数 p
  • 【mmdetection】工具tools试用

    1 日志分析 analyze logs py https blog csdn net jy1023408440 article details 105701705 2 可视化数据集 browse dataset py python tool
  • JAVA上机题(3道)

    题目一 从控制台中读入一个文件名 判断该文件是否存在你的某个盘下 如果该文件存在 则在原文件相同路径下创建一个文件名为 copy 原文件名 的新文件 该文件内容为原文件的拷贝 首先肯定是要判断该文件名到底存不存在 我们定义一个方法 用来判断
  • NoClassDefFoundError: com/google/common/collect/Maps

    Error Exception in thread main java lang NoClassDefFoundError com google common collect Maps I believe you are missing g
  • Lua基础

    目录 Lua5 3参考手册 软件版本 日志及soc下载工具 os date函数说明 os date格式化符号 示例 显示效果 希望实现 实现思路 关于汉字显示的说明 编辑编译方法可参考 示例代码 运行log记录 PS eink 墨水屏操作库