首页
论坛
课程
招聘
[转发+原创]转发个M8 LED点阵模拟程序源码,感谢作者zf_ddt的开源贡献,PPC移植版更新至v0.7
2009-5-26 09:21 9248

[转发+原创]转发个M8 LED点阵模拟程序源码,感谢作者zf_ddt的开源贡献,PPC移植版更新至v0.7

2009-5-26 09:21
9248
【操作方法】
横着拿手机,以文字方向为准,屏幕上方向左划是加快,右划是减慢。
左上区域(调节快速那个区域的左边)往下滑超过10个像素则更换横屏状态。
下方以一条不严格的中线为准,左边领域点击或滑动是变色(目前还没实现不重新来的情况下直接变色,思考ing),右边点击是设置界面,往右划是直接退出。

【更新v0.7】
加入图片自适应特性,现在不必考虑图片像素问题了,自适应当前点阵屏幕,但是还是那句话,最接近合适像素的图片显示效果才最清晰。



VGA显示图片效果(感谢icion论坛版主 真白龙)


原图:


缩小的VGA图片效果:


【六一后更新】
加上了QVGA的限制,由于QVGA屏幕配合最大点阵(20像素)能显示的最大范围为240/20=12像素,而一个中文汉字需要16像素才能显示,所以会导致缺字,最大点阵并不适合QVGA,所以在QVGA里将不会再列出最大点阵。

增加了划动切换方向的无聊特性,左上区域(调节快速那个区域的左边)往下滑超过10个像素则更换横屏状态。

图片缩放暂时没实现,先恢复原来的像素尺寸检测,无标准不成方圆。

顺手规范了附带的几个示例图片的名称,分别对应精细、中等、最大。

说一下这个像素点阵的技术细节:
精细点阵的高度为8像素     QVGA下显示为30个点阵,所以字型会很精细,而VGA下为60个点阵。
中等点阵的高度为16像素   QVGA下显示为15个点阵(!看来点阵图片需要调整一下,召唤子夫),所以字型勉强能看,而VGA下为30个点阵。
最大点阵的高度为20像素   QVGA下显示为12个点阵,所以字型会显示不全,故取消QVGA的最大点阵显示,而VGA下为24个点阵,依然能完整显示。

因为原来的点阵图就是针对M8的480宽度显示屏设计的,所以弄到QVGA里需要做出对应修改。

最后加上了版本号,目前最新的版本为v0.6,免得都不知道哪个是最新的了。

【更新】
实现了3种点阵选择的功能,分别是精细,中等,最大。推荐精细和中等用于QVGA,中等和最大用于VGA。

【更新】
PPC移植版 for WM5/6 QVGA & VGA 第一预览版发布。
=======================================

多亏作者公开源代码,移植工作才得以进行。

为此安装了个M8 SDK……

发现M8里把MFC的Dialog based和Document混杂在一起了,文档视图工程居然是OnInitDialog入口的。

另外似乎M8的DC没有限制,这代码直接移植的话在不少PPC真机上会出莫名其妙的问题,是因为DC资源耗尽了。


[注意] 欢迎加入看雪团队!base上海,招聘安全工程师、逆向工程师多个坑位等你投递!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (15)
雪    币: 2309
活跃值: 活跃值 (48)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-5-26 09:27
2
0
小金的移植新作。一定要支持一下!

另外“贫乳”是什么?我只听过“贫铀弹”。
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-5-26 10:34
3
0
飞机场……
雪    币: 2309
活跃值: 活跃值 (48)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-5-26 11:00
4
0
  
  
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-5-26 12:31
5
0
目前遇到麻烦的bug,涉及字符串读取的,由于不擅长C里面的字符串转换,想问问熟悉C的朋友,该咋样改呢?

bug现象是读入ANSI编码文件里的一串中文和标点都没问题,如“贫乳是地位的象征,具有稀少价值!”就很正常,但是读入英文和符号就出奇怪问题,例如异常的字符串截断,读入“Lucky☆Star ★ 幸运星 らき☆すた”我MessageBox出来发现只读到“Lucky☆Star”,显示出来也是一样的问题。

如果用UTF8编码文件,读出来的文件在wsprintf后就乱码……但是在复制操作之前MessageBox出来是能读完整的。
雪    币: 2309
活跃值: 活跃值 (48)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-5-26 13:28
6
0
因为WM绝大多数API都是只支持宽字符集。

能否考虑把所有用到字符串的地方都使用宽字符声明,并且在字符串前面加上L.
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-5-26 13:34
7
0
从文件读取进来的字符没法加L。。。。
雪    币: 37387
活跃值: 活跃值 (154212)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 活跃值 2009-5-26 13:34
8
0
Thanks for share.
雪    币: 2309
活跃值: 活跃值 (48)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-5-26 13:45
9
0
文件中如果是ANSI字符集的可以在读入内从后使用API函数转换。

《API手册》里面有介绍的。函数名字很长,在列表中一眼可以看到。
雪    币: 2309
活跃值: 活跃值 (48)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 活跃值 12 2009-5-26 13:48
10
0
另外:

加L是在源代码中告诉系统这里使用宽字符集。在编译的时候系统会把字符串按照宽字符集字符串处理。

如果是文件中读取得到的,就要使用字符串转换函数了。

那个转换函数参数比较多,可以根据MSDN的介绍或者找个例子改写。
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-5-26 15:51
11
0
有朋友很神奇的帮忙解决了……

原帖由 jsfaint 于 2009-5-26 03:30 PM 发表
无责任修改, 问题出在这里, wcstok的诡异错误
p = wcstok(szLine,TEXT("String="));
改为
p = wcsrchr(szLine,L'=') + 1;
--------

附无责任源码
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-6-5 17:46
12
0
PPC移植版更新到v0.7
雪    币: 1526
活跃值: 活跃值 (1153)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
曾半仙 活跃值 10 2009-6-6 02:03
13
0
卡噶民啊...
雪    币: 201
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leptonic 活跃值 2009-6-10 22:20
14
0
既然zf_ddt做的是开源软件,也希望楼主能够遵循GPL协议 公布您修改的移植版的源码
雪    币: 115
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
NETTF小金 活跃值 2 2009-6-11 11:09
15
0
我会联系zf_ddt并遵循GPL协议给他我移植版代码,楼上的可以把你那个奸笑的头像换下了。
雪    币: 55
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
打小 活跃值 2009-6-11 11:47
16
0
横竖屏切换的时候没有重刷……
游客
登录 | 注册 方可回帖
返回