- 1. 1.1 Kontrollen属性类
- 2. 1.2 记录Kontrollen
- 3. 1.3 常用回调函数
- 4. 1.4 绘图函数
- 5. 1.5 MODBUSVereinbarung访问
- 6. 1.6 网络Related
- 7. 1.7 定时器
- 8. 1.8 Die Serie
- 9. 1.9 CAN Schnittstelle
- 10. 1.10 音视频
- 11. 1.11 FLASH存储器读写
- 12. 1.12 文件Das SystemOperationen
- 13. 1.13 其他
本Dokumentation适用于M系列、W系列、X系列、F系列(固件版本 >= V4.2.401.0)。API函数中的screen、controlParameter均表示为目标画面ID、目标Konfiguration KontrolleID,后文每个API不一一介绍
1.1 Kontrollen属性类
1.1.1 change_screen(screen)
Wechselnzu指定画面
1.1.2 change_child_screen (screen)
Wechselnzu子画面,例如对话框
1.1.3 change_screen_effect(screen,effect)
Wechselnzu指定画面,使用动画效果
- effect:动画效果。0-无动画,1-从左zu右,2-从右zu左,3-从上zu下,4-从下zu上,5-渐隐渐消
1.1.4 set_slide_screen(slide,round,start_screen,end_screen)
设置窗口滑动模式
- slide:0-禁止滑动,1-左右滑动,2-上下滑动
- round: 1-环回模式,尾页可以滑zuStartseite
- start_screen: 开始画面
- end_screen:Ende画面
1.1.5 set_button_notify_release ()
设置Knopf松开通知模式,在触摸Knopf上也可以滑动窗口
1.1.6 get_current_screen()
获取gegenwärtig画面ID
1.1.7 set_value(screen,control,value)
设置KontrollenZahlenwert
- value:Kontrollen值
KnopfKontrollen:value=1 – 按下,0 – 弹起
TextKontrollen:value – 整数或小数
也可以设置Fortschritt Artikel、滑块、仪表、滑动AuswahlKontrollen等等
1.1.8 get_value(screen,control)
获取KontrollenZahlenwert,Knopf、Text、Fortschritt Artikel、滑块、仪表等
1.1.9 set_visiable(screen,control,visiable)
设置Kontrollen是否可见
- visiable:0-隐藏,1-显示
1.1.10 set_enable(screen,control,enable)
设置Kontrollen是否可触摸
- enable:0-禁止触摸,1-aktiviert.触摸
1.1.11 set_fore_color(screen,control,color)
设置Kontrollen前景色,例如TextKontrollen文字颜色,Fortschritt Artikel显示颜色
- color:RGB值,2个Bytes,RGB565
1.1.12 set_back_color(screen,control,color)
设置Kontrollen背景色,例如TextKontrollen背景颜色,Fortschritt Artikel背景颜色
- color:RGB值,2个Bytes,RGB565
1.1.13 set_text(screen,control,text)
设置Kontrollen显示内容(Charaktere串),TextKontrollen,二维码Kontrollen等
- text:Charaktere串Typus
1.1.14 set_text_roll(screen,control, speed)
设置TextKontrollen从右往左滚动速度
- speed:每秒多少个像素。设置为0Stopp!滚动
1.1.15 set_text_flicker (screen,control, cycle)
设置TextKontrollen闪烁周期
- cycle:闪烁周期,单位10ms。设置为0Stopp!闪烁
1.1.16 get_text(screen,control)
获取KontrollenCharaktere串内容(Charaktere串),TextKontrollen,二维码Kontrollen等
1.1.17 set_options (screen, control, options)
设置滑动AuswahlKontrollen的内容
- options:选项内容,Charaktere串Das Format,每一项用英文UnterteilungNr.“;”隔开
例如:set_options (screen,control, ‘选项1;选项2;选项3;’)
1.1.18 set_screen_range(screen, control, start_screen,end_screen, round)
设置子画面窗口滑动模式,W系列支持,F、M系列不支持
- start_screen: 开始画面
- end_screen:Ende画面
- round:1环回模式,尾页可以滑zuStartseite
1.1.19 play_animation(screen, control)
设置动画Kontrollen播放
1.1.20 stop_animation(screen,control)
设置动画KontrollenStopp!
1.1.21 set_history_graph_value(screen,control,channel0,..,channel7)
设置历史曲线的通道值,根据通道的个数填写Parameter
- channe0:通道0的值
- …
- channe7:通道7的值
例如有4个通道:set_history_graph_value(screen,control,1,2,3,4)
1.1.22 set_history_graph_direction(screen,control,direction)
设置历史曲线Erfrischen方向,默认Status下,Erfrischen方向从右往左
- direction:0-从右往左,1-从左往右
1.1.23 set_scroll_position(screen, control, mode)
设置历史曲线的翻页
- mode:翻页模式。2-Nächste Seite,3-Vorherige Seite,4-尾页,5-Startseite
1.2 记录Kontrollen
1.2.1 record_set_event(screen,control,eventid)
告警Typus-触发告警
- eventid:和告警Typus的Daten aufzeichnenKontrollen中告警AnalyseID关联
1.2.2 record_reset_event(screen,control,eventid)
告警Typus-解除告警
- eventid:和告警Typus的Daten aufzeichnenKontrollen中告警AnalyseID关联
1.2.3 record_add(screen,control,record)
在末尾添加一条记录
- record:record为Charaktere串
例如:record_add(screen,control, “item1;item2;item3;”)
1.2.4 record_insert (screen,control,position,record)
在指定位置插入一条记录
- position:插入位置索引
- record:record为Charaktere串
1.2.5 record_clear(screen,control)
Beseitigung记录Daten
1.2.6 record_setoffset(screen,control,offset)
设置滚动显示位置
- offset:gegenwärtig显示的定位zu该索引
1.2.7 record_get_count(screen,control)
获取记录条数
例如:local recordCnt = record_get_count(0, 1) —假设画面0、Kontrollen1位Daten aufzeichnenKontrollen
1.2.8 record_read(screen,control,position)
Lesen一条记录,返回Charaktere串
- position:需要被Lesen的行Nr.。索引Beginn von 0,0即是Die一行Daten
1.2.9 record_modify(screen,control, position ,record)
修改一条记录
- position:需要被修改的行Nr.,索引Beginn von 0,0即是Die一行Daten
- record:新的修改内容
1.2.10 record_delete(screen,control,position)
Löschen一条记录
- position:需要被Löschen的行Nr.。索引Beginn von 0,0即是Die一行Daten
1.2.11 record_select(screen,control,position)
选中一条记录
- position:需要被选中的行Nr.。索引Beginn von 0,0即是Die一行Daten
1.2.12 record_export(screen,control)
Exportieren记录zuSD卡/U盘
1.3 常用回调函数
1.3.1 on_init()
Das SystemLadenLUADrehbuch文件之后,立即调用此回调函数,通常用于执行初始化Operationen。
1.3.2 on_systick()
Das System每隔1秒钟自动调用此回调函数。
1.3.3 on_control_notify(screen,control,value)
用户触摸修改Kontrollen后,执行此回调函数。Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Kontrollen
- value:为Zahlenwert Typ,如果需要获取TextKontrollen的Charaktere串值,使用get_text(screen,control)
1.3.4 on_screen_change(screen)
当画面需要Wechseln时,执行此回调函数,screen为目标画面。
注意,此函数内部调用change_screen,不会嵌套执行on_screen_change。
1.3.5 on_press(state,x,y)
用户Klick auf触摸屏时,执行此回调函数。
- state:触摸Status,0-松开,1-按下,2-持续按压
- x:为触摸X坐标
- y:为触摸Y坐标
1.3.6 on_usb_inserted(driver)
U盘插入时,执行此回调函数
- dirver:为U盘的盘符
1.3.7 on_usb_removed()
U盘拔出时,执行此回调函数
1.3.8 on_sd_inserted(dir)
SD卡插入通知
- dir:盘符路径
1.3.9 on_sd_removed()
SD卡拔出通知
1.3.10 on_screen_sliding(screen, control)
用于确定手指滑动时的目标画面ID,W系列支持,F、M系列不支持
返回Wechseln目标的画面的ID,left、right 、up、down,4个Parameter,指定左、右、上、下的页面ID,若为-1,该方向不允许滑动
- screen:gegenwärtig所在的画面
- control:gegenwärtig页面,在上面滑动的KontrollenID
1.4 绘图函数
1.4.1 on_draw(screen)
当界面的显示内容需要更新时,Das System自动调用此函数,用户在此函数中添加Custom definiert的绘图Operationen。用户绘制的内容叠加在画面内容Kontrollen上面.此函数为Das System回调函数,用户不要直接调用
下面几种情况会触发此函数:
- 界面有动画播放、视频播放、RTCZeit显示的动态Erfrischen
- 用户Operationen屏幕Kontrollen
- 通过LUADrehbuch或Die Serie指令更新Kontrollen
- 通过执行redraw
总之,界面上有任何变化,都会触发此回调函数。
1.4.2 on_pre_draw(screen)
用户绘制的内容在画面最底层,gegenwärtig绘制画面需要透明,无背景图
Related说明同上
1.4.3 redraw()
Senden Sie重绘Bitte,触发on_draw的执行
1.4.4 screen_shoot(filename,x,y,width,height,quality)
截取屏幕窗口范围,存储zu指定文件路径。W系列支持,F、M系列不支持
- filename: 图片文件存放路径
- x:截图的起点x坐标
- y:截图的起点y坐标
- width:截图的宽度
- height:截图的高度
- quality: JPEG图片质Quantität,默认95
例如:screen_shoot(‘b:/shoot.jpg’,0,0,480,272, 95)
1.4.5 set_pen_color(color)
设置画笔的颜色,RGB565,用于指定线、矩形、圆等的颜色
- color:RGB565颜色值
1.4.6 draw_line(x0,y0,x1,y1,width)
绘制直线
- x0,y0:Anfang点坐标
- x1,y1:Ende点坐标
- width:为线条的厚度,1~10
1.4.7 draw_rect(x0,y0,x1,y1,fill)
绘制矩形
- x0,y0:左上角坐标
- x1,y1:右下角坐标
- fill:0不填充,1填充
1.4.8 draw_rect_alpha(x0,y0,x1,y1,alpha)
绘制实心的半透明矩形,F系列不支持
- x0,y0:左上角坐标
- x1,y1:右下角坐标
- alpha:透明度0全透明~255不透明
1.4.9 draw_circle(x,y,r,fill)
绘制圆形
- x,y:圆的中心坐标
- r:圆的半径
- fill:0不填充,1填充
1.4.10 draw_ellipse(x0,y0,x1,y1,fill)
绘制椭圆
- x0,y0:左上角坐标
- x1,y1:右下角坐标
- fill:0不填充,1填充
1.4.11 load_image (image_id,frame_id)
Laden指定图片zu内存,一般用在on_init中,牺牲了开机速度,但使Betrieb过程更流程。W系列支持,F、M系列不支持
- image_id:图片资源的ID
- frame_id:对应图标,可以设置帧ID,其他图片固定为0
1.4.12 draw_image(image_id,frame_id,dstx,dsty,width,height,srcx,srcy)
绘制图片
- image_id:图片资源的ID
- frame_id:对应图标,可以设置帧ID,其他图片固定为0
- dstx:图片显示X坐标
- dsty:图片显示Y坐标
- width:图片显示宽度
- height:图片显示高度
- srcx:图片裁剪X坐标
- srcy:图片裁剪Y坐标
1.4.13 draw_image_file(filename,dstx,dsty,width,height,srcx,srcy)
绘制图片,此方法不对图片进行缓存,效率较低,W系列支持,F、M系列不支持
- filename:图片文件,支持JPEG/PNG
- dstx:图片显示X坐标
- dsty:图片显示Y坐标
- width:图片显示宽度
- height:图片显示高度
- srcx:图片裁剪X坐标
- srcy:图片裁剪Y坐标
1.4.14 load_surface (filename)
Laden图片zu图层,W系列支持、M系列 >= V6.1.241.00支持(裁剪显示)、F系列不支持
- filename:图片文件,支持JPEG/PNG
例如:surface = load_surface (“c:/test.jpg”)
图层不再使用时,需要调用destroy_surface进行销毁,否则会导致内存泄漏。
1.4.15 destroy_surface (surface)
销毁图层,W系列支持、M系列 >= V6.1.241.00、F系列不支持
- surface:图层资源指针
1.4.16 draw_surface (surface,dstx,dsty,width,height,srcx,srcy)
绘制图层,相比于draw_image_file,此方法效率较高,W系列支持、M系列 >= V6.1.241.00支持(裁剪显示)、F系列不支持
- surface:图层资源指针
- dstx:图片显示X坐标
- dsty:图片显示Y坐标
- width:图片显示宽度[可选]
- height:图片显示高度[可选]
- srcx:图片裁剪X坐标[可选]
- srcy:图片裁剪Y坐标[可选]
例如:
- 平铺显示:draw_surface(surface, dstx, dsty)
- 缩放显示:draw_surface(surface, dstx, dsty, width, height)
- 裁剪显示:draw_surface(surface, dstx, dsty, width, height ,srcx, srcy)
1.4.17 draw_text(text,x,y,w,h,font,color,align)
显示文字
- text:Charaktere串
- x:显示X坐标
- y:显示Y坐标
- w:显示宽度
- h:显示高度
- font:字体编Nr.
- color:颜色RGB565
- align:对齐方式
bit0~bit1水平对齐方式,0左对齐,1居中对齐,2右对齐
bit2~bit3垂直对齐方式,0上对齐,1居中对齐,3下对齐
1.5 MODBUSVereinbarung访问
LUA中访问MODBUS/PLC等Vereinbarung中定义的变Quantität,需要通过下面的变Quantität访问Schnittstelle
mb_前缀的Schnittstelle,专用于MODBUSVereinbarung,固件版本要求:W系列>=3.0.590.0,F系列>= 4.1.401.0,M系列>= V6.1.59.00
1.5.1 get_variant(name)
获取Vereinbarung变Quantität的Zahlenwert
- name:变QuantitätName
例如:get_variant(“Variable1”)
1.5.2 set_variant(name,value)
设置Vereinbarung变Quantität的Zahlenwert
- name:变QuantitätName
- value:需要对变Quantität赋的值
例如:set_variant(“Variable1”,12345)
1.5.3 mb_set_timeout (timeout)
设置从机应答超时Zeit
- timeout:范围1~255,10毫秒单位
1.5.4 mb_read_coil_01 (slave,addr,quantity)
01Funktionscode,Lesen线圈,成功时返回Anzahl der Bytes组,一个Bytes8个coil,失败返回nil
- slave:从机Adresse
- addr:变QuantitätAdresse
- quantity:Lesen的线圈个数
1.5.5 mb_read_input_02(slave,addr,quantity)
02Funktionscode,Lesen von diskreten Eingaben,成功时返回Anzahl der Bytes组,一个Bytes8个input,失败返回nil
- slave:从机Adresse
- addr:变QuantitätAdresse
- quantity:Lesen von diskreten EingabenRegister.的个数
1.5.6 mb_read_reg_03(slave,addr,quantity)
03Funktionscode,Lesen und halten Register,成功时返回WORD数组,失败返回nil
- slave:从机Adresse
- addr:变QuantitätAdresse
- quantity:Lesen的保存Register.的个数
1.5.7 mb_read_input_reg_04(slave,addr,quantity)
04Funktionscode,Eingangsregister lesen,成功时返回WORD数组,失败返回nil
- lave:从机Adresse
- addr:变QuantitätAdresse
- quantity:Lesen的输入Register.的个数
1.5.8 mb_write_coil_05 (slave,addr,status)
05Funktionscode,Schreiben Sie eine einzelne Schleife.,成功时返回true,失败返回false
- slave:从机Adresse
- addr:变QuantitätAdresse
- status:1为ON,0为OFF
1.5.9 mb_write_reg_06 (slave,addr,reg)
06Funktionscode,写入单个保持Register.,成功时返回true,失败返回false
- slave:从机Adresse
- addr:变QuantitätAdresse
- reg:Registerwert
1.5.10 mb_write_coil_15 (slave,addr,quantity,coils)
15Funktionscode,Schreiben Sie mehrere Schleife.,成功时返回true,失败返回false
- slave:从机Adresse
- addr:变QuantitätAdresse
- coils:Anzahl der Bytes组,一个Bytes8个coil,下标索引Beginn von 0
1.5.11 mb_write_reg_16 (slave,addr,regs)
16Funktionscode,写入多个保持Register.,成功时返回true,失败返回false
- slave:从机Adresse
- addr:变QuantitätAdresse
- regs:Register.WORD数组,下标索引Beginn von 0
1.6 网络Related
W联型支持,F系列、M系列不支持
1.6.1 get_wifi_cfg()
返回4个Parameter
例如:wifi_mode, secumode, ssid, password = get_wifi_cfg()
- wifi_mode:无线网络模式。0-禁用无线网络,1-无线网卡模式,2-AP热点模式
- secumode:加密模式 0-AUTO(默认值) ,1-WEP, 2-WPAPSK ,3-WPAPSK2
- ssid:无线网络Name
- password:无线网络密码
1.6.2 set_wifi_cfg(wifi_mode, secumode, ssid, password)
设置WIFI配置,Parameter说明同上
1.6.3 on_wifi_callback(state,reason)
网络Status改变时,会被调用
1.6.4 get_network_state()
获取网络Status,返回一个Parameter
例如:state = get_network_state()
Status位说明
- bit0-无线网络Verbindung
- bit1-有线网络Verbindung
- bit2-是否连上Der Server
- bit3-是否有客户端连上
1.6.5 set_network_cfg(dhcp, ipaddr, netmask, gateway, dns)
dhcpaktiviert.DHCP,0禁用,1aktiviert.,禁用时后面的Parameter才Wirksam
- ipaddr:静态IP
- netmask:掩码
- gateway:子网掩码
- dns:域名Der Server
1.6.6 get_network_cfg()
返回五个Parameter,说明同上
例如:dhcp, ipaddr, netmask, gateway, dns = get_network_cfg()
1.6.7 save_network_cfg()
保存网络设置,并重连网络
注意:修改网络配置、Der ServerParameter等需要调用此函数进行保存生效,如下所示
......
set_network_cfg(dhcp, ipaddr, netmask, gateway, dns)
save_network_cfg()
......
1.6.8 set_network_service_cfg(wificom, mode, port, server_addr)
设置网络服务Parameter
- wificom:默认为0,为1时aktiviert.透传模式(即无线Serienbildschirm)
- mode:0禁用网络服务,1客户端模式,2Der Server模式
- port :服务端口,默认5050
- server_addr:Der ServerAdresse(屏作客户端时)
1.6.9 get_network_service_cfg()
返回4个Parameter,说明同上
wificom, mode, port, server_addr = get_network_service_cfg()
1.6.10 scan_ap()
扫描无线热点,返回热点数目
ap_count = scan_ap()
1.6.11 get_ap_info(index)
获取指定热点的信息
- index:WIFI的Seriennummer.,如下所示
local ap_cnt = scan_ap()
for i = 1, ap_cnt
do
local ssid, security, quality = get_ap_info(i - 1)
record_add(sc_scanwifi, 1, ssid..";"..quality..";")
end
- index 热点索引,索引Beginn von 0
- ssid:热点Name
- security:加密方式
- quality:信Nr.质Quantität
1.6.12 client_send_data(packet)
通过客户端SOCKETSenden SieMeldung zuDer Server
- packet:Senden von Bytes数组packet,下标Beginn von 0
function my_sendToserver()
local send_buff = {}
send_buff[0] = 0x00
send_buff[1] = 0x01
send_buff[2] = 0x02
send_buff[3] = 0x03
send_buff[4] = 0x04
send_buff[5] = 0x05
send_buff[6] = 0x06
send_buff[7] = 0x07
send_buff[8] = 0x08
send_buff[9] = 0x09
client_send_data(send_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
......
if screen == sc_tcp
then
if control == 3 and value == 0
then
my_sendToserver()
end
end
......
end
1.6.13 server_send_data(clinet_id,packet)
通过服务端SOCKETSenden SieMeldungzu客户端
- clinet_id:目标客户端ID
- packet:Senden von Bytes数组packet,下标Beginn von 0
function my_sendToClien()
local send_buff = {}
send_buff[0] = 0x00
send_buff[1] = 0x01
send_buff[2] = 0x02
send_buff[3] = 0x03
send_buff[4] = 0x04
send_buff[5] = 0x05
send_buff[6] = 0x06
send_buff[7] = 0x07
send_buff[8] = 0x08
send_buff[9] = 0x09
server_send_data(1,send_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
......
if screen == sc_tcp
then
if control == 3 and value == 0
then
my_sendToClien()
end
end
......
end
1.6.14 on_client_recv_data(packet)
当客户端SOCKETEmpfangzuDaten时,Das System自动回调此函数。
- packet:Empfang的Anzahl der Bytes组packet,下标Beginn von 0
PS:屏幕EmpfangDer Server的Daten不一定是vollständig一帧MeldungDaten,此处仍需要做粘包、Unterteilung包,再提取vollständig一帧Daten做处理
function on_client_recv_data(packet)
local client_rec = ''
for i= 1,#(packet) do
client_rec = client_rec .." ".. string.format("%02X",packet[i])
end
--简单显示MeldungDaten
set_text(sc_tcp, 1, 'cnt('..recv_cnt..') = '..client_rec)
end
1.6.15 on_server_recv_data(clinet_id,packet)
当服务端SOCKETEmpfangzuDaten时,Das System自动回调此函数
- clinet_id:客户端ID
- packet:Empfang的Anzahl der Bytes组packet,下标Beginn von 0
PS:屏幕EmpfangDer Server的Daten不一定是vollständig一帧MeldungDaten,此处仍需要做粘包、Unterteilung包,再提取vollständig一帧Daten做处理
处理方法与on_client_recv_data类似。
1.6.16 http_request(taskid,uri,method,content_type,postdata)
Senden SieHTTPBittezuDer Server
- taskid:Bitte任务编Nr.,任意设置
- uri:资源路径
- method:方法,0GET,1POST
以下ParameterPOST方法才需要
- content_type:Datentyp例如 json,xml,text等
- postdata:POSTDaten
1.6.17 on_http_response(taskid,response)
HTTPAntwort
- taskid:Antwort任务编Nr.,与http_request匹配
- response:AntwortDaten
1.6.18 http_download (taskid,uri,savepath)
使用HTTPVereinbarungDownload文件
- taskid:Bitte任务编Nr.,任意设置
- uri:资源路径
- savepath:存放位置
1.6.19 http_download_bigfile(taskid,uri ,savepath)
使用HTTPVereinbarungDownload大文件
Parameter说明同上
1.6.20 on_http_download (taskid, status)
DownloadAntwort
taskid:Antwort任务编Nr.,与http_download匹配
status:DownloadStatus:0Download失败,1Download成功但存储失败,2Download并存储成功
1.6.21 udp_create(port)
- port:端口Nr.
创建UDP套接字,并绑定服务端口
例如:sockfd = udp_create(12345)
1.6.22 udp_close(sockfd)
SchließenUDP套接字
- sockfd:套接字,如udp_create(port)返回
1.6.23 udp_recvfrom(sockfd)
EmpfangUDPDatenMeldung
- ret=-1:表示发生Fehler.,ret=0表示无Daten,其他值表示DatenLänge
- ip,port:Senden Sie端的IP和端口
- packet为DatenMeldung,tableTypus,下标Beginn von 0
ret,ip,port,packet = udp_recvfrom(sockfd)
1.6.24 udp_sendto(sockfd,ip,port,packet)
Senden SieUDPDatenMeldung
- sockfd:UDP套接字
- ip,port:Empfang端的IP和端口
- packet:DatenMeldung,tableTypus,下标Beginn von 0
1.6.25 get_wifi_mac()
获取WIFI模块的macAdresse,返回Charaktere串
local mac_addr = get_wifi_mac()
1.6.26 get_ethernet_mac()
获取Ethernet的macAdresse,返回Charaktere串
local mac_addr = get_ethernet_mac()
1.7 定时器
1.7.1 start_timer(timer_id, timeout, countdown, repeat)
启动定时器,超时后Das System自动调用on_timer
- timer_id:定时器ID,0~31
- timeout:超时Zeit,单位毫秒
- countdown:0顺计时,1倒计时
- repeat:重复次数,0表示无限重复
1.7.2 stop_timer(timer_id)
Stopp!定时器
- timer_id:定时器ID,0~31
1.7.3 on_timer(timer_id)
定时器超时回调函数
- timer_id:定时器ID,0~31
1.7.4 get_timer_value(timer_id)
获取定时器gegenwärtig计时Zeit,单位毫秒
- timer_id:定时器ID,0~31
1.8 Die Serie
LUADrehbuch的Die SerieAPI函数,mehr.应用于自由Die SerieVereinbarung,详细DEMO,可参考LUAUnterricht10-Custom definiertDie Serie指令.zip
1.8.1 uart_send_data(packet)
通过Die SerieSenden SieDaten
- packet:Anzahl der Bytes组,下标Beginn von 0
function uart_doorState(state)
local door_buff = {}
door_buff[0] = 0x5A
door_buff[1] = 0x5A
door_buff[2] = 0x07
door_buff[3] = 0x82
door_buff[4] = 0x00
door_buff[5] = 0x01
door_buff[6] = state
uart_send_data(door_buff)
end
--用户通过触摸修改Kontrollen后,执行此回调函数。
--Klick aufKnopfKontrollen,修改TextKontrollen、修改滑动条都会触发此Ereignisse。
function on_control_notify(screen,control,value)
......
if screen == sc_door
then
if control == 1
then
uart_doorState(value)
end
end
......
end
1.8.2 uart_set_timeout(timeout, timeout_inter)
设置Die SerieEmpfang超时Zeit
- timeout:Empfang总超时
- timeout_inter:Bytes间隔超时
常用于自由Die SerieVereinbarung(uart_free_protocol = 1),eg:uart_set_timeout(0, 0)
1.8.3 uart_set_baudrate(baudrate)
- baudrate:Porter Rate,支持2400bps ~ 961200bps
设置Porter Rate,如uart_set_baudrate(9600)
1.8.4 uart_get_baudrate()
获取Porter Rate,返回Porter Rate值
local baudrate = uart_get_baudrate()
1.8.5 on_uart_recv_data(packet)
Die SerieEmpfangDaten的回调函数,有两种方式可以触发此函数执行:
☆使用Custom definiertDie Serie指令:Das Format为EE B5【Custom definiertDaten】FF FC FF FF
☆使用自由Die SerieVereinbarung:在LUADrehbuch中定义全局变Quantität uart_free_protocol = 1
- packet:Empfang的Anzahl der Bytes据
1.8.6 uart_setup(baudrate,parity,stopbit,databits)
Parameter einstellen
- baudrate:Porter Rate值
- parity:0-无Prüfungen,1-ODDSeltsame Tests,2-EVEN Zufällige Prüfungen
- stopbit:stopbit=0,1个Stoppen Sie Platz;stopbit=1,1.5个Stoppen Sie Platz
- databits:Datenplatz5~8
1.9 CAN Schnittstelle
1.9.1 canbus_open(index,baudrate,listen_mode,loop_back)
Öffnen. CANBUS Schnittstelle
- index:索引Nr. 0~1
- baudrate:Porter Rate(单位 K), 可选 125,250,500,1000
- listen_mode:只读模式
- loop_back:自发自收(环回/自测)
1.9.2 canbus_close(index)
Schließen CANBUS Schnittstelle
- index:索引Nr. 0~1
1.9.3 canbus_write(index,identifier,dlc,rtr,ide,data)
Senden Sie CAN Meldung
- index:索引Nr. 0~1
- identifier:Meldung ID
- dlc:DatenLänge
- rtr:Fern entfernt帧
- ide:扩展帧
- data:Daten, table Das Format
1.9.4 on_canbus_recv(index,identifier,dlc,rtr,ide,data)
CAN Meldung回调函数, 收zuMeldung后, Das System自动调用
- index:索引Nr. 0~1
- identifier:Meldung ID
- dlc:DatenLänge
- rtr:Fern entfernt帧
- ide:扩展帧
- data:Daten, table Das Format
1.10 音视频
W系列、F系列、M系列均支持音频播放,W系列、M系列均支持视频播放、F型不支持
1.10.1 play_sound(filename)
播放指定的声音文件,例如播放屏内音频文件
- filename:路径
屏内路径播放:
W系列:play_sound(‘a:/sounds/welcome.wav’)
M、F系列:play_sound(‘3:/sounds/welcome.wav’)
1.10.2 stop_sound()
Stopp!播放
1.10.3 on_audio_callback (state)
声音播放Ende回调通知
- state保留未使用。
1.10.4 set_volume(level)
设置音Quantität
- level:音Quantität等级0~100。0静音,100最大音Quantität
1.10.5 get_volume()
获取音Quantität,返回值0-100
1.10.6 play_video(pathname,repeat)
播放视频,不适用于M/F/X系列
pathname为视频路径
repeat为重复次数,0为无限制次,
播放屏内视频:play_ video(‘a:/Videos/1.mp4’,0)
1.10.7 pause_video()
暂停视频播放,F系列不支持
1.10.8 resume_video()
恢复视频播放,F系列不支持
1.10.9 stop_video()
Stopp!视频播放,F系列不支持
1.10.10 play_video(file,left,top,width,height)
播放视频,M/X系列,F系列/物联型不支持
file:文件路径
left:Anfang坐标x
top:Anfang坐标y
width:视频显示的宽度
height:视频显示的高度
1.10.11 on_video_notify(msg,v1, v2)
视频播放回调函数
msg:1-播放中,0-播放完毕
v1:gegenwärtig播放进度,gegenwärtig已播时长,单位s
v2:播放总进度, gegenwärtig视频总时长,单位s
1.10.12 set_av_channel(channel)
WechselnAV通道,M系列,物联型、F系列不支持
channel = 0,Wechselnzu通道1
channel = 1,Wechselnzu通道2
1.11 FLASH存储器读写
屏幕提供128K用户FLASH,可用于存储配置Parameter
固件版本要求:W系列>=3.0.590。0,F系列>= 4.1.401.0,M系列>= V6.1.59.00
1.11.1 write_flash(addr,data)
写用户FLASHDaten,addr写入Adresse,dataAnzahl der Bytes组,下标Beginn von 0。
1.11.2 read_flash(addr,length)
读用户FLASHDaten,addr写入Adresse,lengthLesenAnzahl der Bytes,返回Typus为Anzahl der Bytes组,下标Beginn von 0
data = read_flash(addr,length)
1.11.3 write_flash_string(addr,str)
写Charaktere串zu指定FLASHAdresse
1.11.4 read_flash_string(addr)
从指定FLASHAdresseLesenCharaktere串,成功返回Charaktere串,失败返回nil
str = read_flash_string(addr)
1.11.5 flush_flash()
Das System会对FLASH写入Operationen进行缓存优化,以提高写入效率
flush_flashOperationen会立即把Daten写入FLASH
1.12 文件Das SystemOperationen
文件Das System读写Schnittstelle,M系列专用,个别函数物联型使用,没有提及部Unterteilung均M系列专有
1.12.1 list_dir(path)
遍历指定目录下的文件和文件夹,成功返回true,失败返回false
- path:文件路径
- filename:文件Name
- type:0-文件夹,1-文件
- fsize:文件大小
通过以下回调函数返回文件夹的内容
on_list_dir(path,filename,type,fsize)
1.12.2 file_open(path,mode)
Öffnen.文件,成功返回true,失败false
- path-文件路径
- mode-Öffnen.模式,如下组合方式
| FA_OPEN_EXISTING | FA_READ | FA_WRITE | FA_CREATE_NEW | FA_CREATE_ALWAYS | FA_OPEN_ALWAYS |
|---|---|---|---|---|---|
| 0x00 | 0x01 | 0x02 | 0x04 | 0x08 | 0x10 |
例如:
Öffnen.文件用于Lesen:file_open(path, 0x01)
创建文件用于写入:file_open(path, 0x02|0x08)
1.12.3 file_close()
Schließen文件,成功返回true,失败false
1.12.4 file_size()
获取gegenwärtig文件大小,返回Anzahl der Bytes
local file_fd = file_open(path, 0x01)
local filesize = file_size()
1.12.5 file_seek(offset)
定位文件Lesen位置,成功返回true,失败false
- offset:文件偏移位置
1.12.6 file_read(count)
Lesen文件内容,成功返回table数组,失败返回nil
- count:LesenAnzahl der Bytes,最大Lesen2048个Bytes
1.12.7 file_write(data)
写文件内容,成功返回true,失败返回false
- data-待写入的table数组,索引Beginn von 0,最大一次性写2048个Bytes
1.12.8 file_delete(path)
- path:待Löschen的文件路径
1.12.9 file_copy(src_path, dst_path)
- src_path:源文件路径
- dst_path:目标文件路径
1.12.10 start_copy_file (from,to)
注意:此函数仅物联型使用!!!
文件拷贝
- from:源路径
- to:目标路径
拷贝文件过程中,Das System自动回调文件拷贝进度通知
on_copy_file_process(status,filesize,transfersize)
1.12.11 on_copy_file_process(status,filesize,transfersize)
注意:此函数物联型/M系列共用!!!
文件拷贝进度,配合 file_copy(src_path, dst_path)使用,当调用 file_copy,自动回调zuon_copy_file_process函数
- status:Status.0-失败,1-拷贝中,2-拷贝abgeschlossen.
- filesize:被拷贝的文件大小
- transfersize:gegenwärtig回调拷贝的Anzahl der Bytes
1.13 其他
1.13.1 set_backlight(level)
设置背光Leuchtkraft
- level:Leuchtkraft等级0~100,0最暗,100最亮
1.13.2 get_backlight()
获取Leuchtkraft百Unterteilung比,返回Zahlenwert,共100等级
如:level = get_backlight()
1.13.3 set_language(lang)
设置gegenwärtig语言选项
- lang:语言索引,Beginn von 0。若使用英文提示键盘,或上0x80
例如:设置语言1(索引0)
中文提示键盘:set_language(0)
英文提示键盘:set_language(0x80|0)
1.13.4 get_language ()
获取gegenwärtig语言选项
lang:返回语言索引,Beginn von 0。若使用英文提示键盘,则得zu语言项或上0x80
例如:假设gegenwärtig语言1(索引0)cur_lang = get_language()
中文提示键盘:cur_lang = 0
英文提示键盘:cur_lang = 0x80
1.13.5 set_wakeup_mode (mode)
唤醒模式设置,可组合设置,W系列支持,M系列、F系列不支持
- mode:0x1单击唤醒,0x2双击唤醒,0x4Die Serie唤醒
1.13.6 sleepmode (on)
- on:gleich ist1进入
进入睡眠低功耗模式,睡眠后屏幕Funktion不再Betrieb,只能使用触摸唤醒
1.13.7 standbymode (on)
进入待机低功耗模式,屏幕的Die Serie可正常Betrieb。W系列支持,M系列、F系列不支持
1.13.8 beep(time)
蜂鸣器鸣叫时长
- time:单位毫秒
1.13.9 get_tick_count ()
获取上电以后BetriebZeit,单位10ms。
32位计数器,大约49天后溢出归零重新计时。
1.13.10 get_date_time ()
获取gegenwärtig日期Zeit,返回7个Parameter
year,mon,day,hour,min,sec,week = get_date_time()
- year:Jahr
- mon:月
- day:日
- hour:时
- min:Unterteilung
- sec:秒
- week:星期x,星期日为0
1.13.11 set_date_time (year,mon,day,hour,min,sec)
设置gegenwärtig日期Zeit
- year:Jahr
- mon:月
- day:日
- hour:时
- min:Unterteilung
- sec:秒
set_date_time(year,mon,day,hour,min,sec)
1.13.12 upgrade_logo (url)
通过U盘更新开机LOGO,W系列支持、F系列、M系列不支持
- url:图片路径
function on_usb_inserted(driver)
upgrade_logo(driver..'logo.jpeg')
end
1.13.13 gpio_set_in (pin)
PIN引脚设置为输入模式,W系列、M系列支持,F系列不支持
1.13.14 gpio_set_out (pin)
PIN引脚设置为输出模式,W系列、M系列支持,F系列不支持
1.13.15 gpio_set_value (pin,value)
设置输出PIN引脚为(高电平1/低电平0),W系列、M系列支持,F系列不支持
1.13.16 gpio_get_value (pin)
获取输入PIN引脚电平(高电平1/低电平0),W系列、M系列支持,F系列不支持
1.13.18 feed_dog ()
若在Drehbuch内执行耗时超过5秒的Operationen,需要执行喂狗
W系列不支持,F系列、M系列支持。
1.13.19 get_pixel(x,y)
获取对应坐标的RGB565值
W系列、M系列支持,F系列不支持。
1.13.20 refresh_screen()
Erfrischen画面
1.13.21 get_version()
获取固件版本Nr.,返回Charaktere串
Antwort veröffentlichen