[原创] helper2416_tftp测试_传输lua脚本到板子上

lyzhangxiang   2014-9-4 23:01 楼主
好了,这篇帖子算是个前奏贴吧,自带的tftp客户端还是很好用的,也算是个教学贴吧,大家可以自己在他的基础上开发出好玩的东西。文件系统都是我不太熟悉的,fatfs还算熟悉吧能写一些测试代码,关键是我的sd卡里面有资料所以就先不折腾他了,我平时主要用hcc的文件系统。 恩说说我想干嘛吧,之前已经为板子移植了lua虚拟机了,后面会基于lua开发一些好玩的东西给大家一些灵感吧。 我主要想做的事情是脚本图形界面,最终想实现拖拽式的UI设计,也算是个小方案吧,可以用于推广哦。具体思路如下: tftp传输lua脚本到板子上(或者其他方式)---------->lua脚本调用c------------>c主要是自行实现的一些基于图形库的api(ucgui或ugfx)-------->最终就是脚本语言设计的UI 如果要实现拖拽式的UI设计器可参考qt creator的方式,设计器+布局器,完全可以参考qt,因为qt creator也是开源的,相关的开源拖拽框架+组态框架还是很多的。不是很复杂,主要实现一些UI布局和脚本规则吧,当然高级的方式还可以引入xml,这样就更高级啦。初步先实现上面的流程吧,蛮简单的,花点时间两个礼拜就好了。 当然有一些工作要做 1)测试好文件系统后实现一些基本的文件操作接口 2)tftp的接口形式,类似tftp get 等命令 3)lua调用c的模板实现 4)UI标准接口函数实现,也就是一些常用的图形Widget。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 好了,上面都是我的初步计划。接下来看一下tftp的测试过程和结果吧: 1)还是使用光盘tools下面的tftpd32作为tftp服务器,板子充当tftp客户端。 2)按照你的习惯配置网络,可选修改电脑网络配置或者修改代码网络参数配置,我一般都是改代码 首先是tftp_test.c中的网络接口配置,需要和你的PC网络同网段:
  1. IP4_ADDR(&tftp_client_gw, 192,168,2,254);
  2. IP4_ADDR(&tftp_client_ipaddr, 192,168,2,100);
  3. IP4_ADDR(&tftp_client_netmask, 255,255,255,0);
其次是关于tftp服务器地址,在client.c中:
  1. set_dest_ip_addr("192.168.2.200");
这个是你PC上运行的tftp服务器的地址 x.jpg 3)关于测试的tftp命令,同样在client.c中:
  1. char get_file_cmd[3][256]={"get", "add.lua"};
这里支持蛮多的命令的,细节参考tftp rfc文档吧,很详细的 4)这里注意一点即可:
  1. len = makereq(TFTP_RRQ,filemode,cmd[1],send_buffer,sizeof(send_buffer));
可以参考rfc文档,都能一一对上的。 5)开始测试了,启动tftp服务器,也就是tools下面的工具,选择好路径,新建一个add.lua文件,内容如下:
  1. function addc_lua()
  2. print("helper2416_lua_add")
  3. ADD(100,200)
  4. ADD(250,450)
  5. end
6)接上仿真器,给板子上电并进入uboot命令行,最后仿真运行,在命令行中执行:
  1. # netio
7)到此测试完成,结果如下截图 tftp_test.jpg 8)添加内容显示,验证传输正确,可以看到文件内容一致: luatest.jpg 好了,到了这里大家都了解了吧,后面按照我的计划走就可以了,有感兴趣的一起加入,一起搞。 组态UI很简单,拖拽生成UI,再搞个通讯协议,实时更新就更好了,同步的嘛,拖好了界面,板子上面的UI就改变了,很cool吧。 最后,关闭服务器,这里会显示超时,没有文件。我有修改get的频率,紧用于测试,开个头吧,后面要完善不少东西。 to.jpg 本帖最后由 lyzhangxiang 于 2014-9-4 23:03 编辑
电工

回复评论 (5)

我真想bs楼主,有这么容易实现么

西门子的HMI为什么会卖那么贵。。。
点赞  2014-9-4 23:13
引用: 我是个马甲 发表于 2014-9-4 23:13
我真想bs楼主,有这么容易实现么

西门子的HMI为什么会卖那么贵。。。

只是一点想法和构思,没关系
欢迎讨论
电工
点赞  2014-9-5 08:48
引用: 我是个马甲 发表于 2014-9-4 23:13
我真想bs楼主,有这么容易实现么

西门子的HMI为什么会卖那么贵。。。

可以基于具体技术问题进行探讨 说说可行或不可行的理由

加油!在电子行业默默贡献自己的力量!:)
点赞  2014-9-5 09:53
高手在民间!
My dreams will go on... http://www.jyxtec.com
点赞  2014-9-5 10:36
引用: spacexplorer 发表于 2014-9-5 10:36
高手在民间!

我是个小菜鸟。。 一楼说的很对
电工
点赞  2014-9-5 12:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复