ppqq 发表于 2009-7-29 04:28:56

我做的山寨仪表板-DIY进行中

喜欢上模拟飞行有一年多了,自从偶尔看到外国网站上高手DIY硬件后,萌生了自己也DIY一下的热情,于是勉为其难地学习了单片机,编程,折腾了大半年,现在终于出了一点点成果了,发上自己DIY的SAITEK面板,目标是实现NAV COMM ALT HDG VS等数据的显示,修改,切换,当前只完成了显示,革命仍未成功.以后的日子我会慢慢将DIY的过程贴出来,特别了为了让有志于DIY的飞友能了解如何实现,我会尽量将硬件部分描述清楚,在FS2004做硬件外设主要用到了FSUIPC ,FSUIPC提供了所有数据的地址,通过编写接口程序,连接串口发送到单片机就能完成软硬件结合.下面先上一张面板,


哈哈,是不是很简陋,显示用的是字符型液晶LCD1602 ,左上角旋扭为脉冲编码器,通过旋转产生脉冲信号,送到单片机鉴别后就能用来进行频率\数值增减,中间的是旋转开关,通过它实现多路数据输入切换到一个LCD上显示.
来张背面


目前就到这,现在通过切换能显示NAV COMM AP .现在要解决的是修改某个显示数值的问题.有进展我会继续贴图

关于如何读取数据,下面我介绍一下
其实如何找游戏数据很简单.象FS2004,在FUSUIPC作者提供的SDK文档资料里面有很详细的说明.比如说我要读取当前NAV1的频率,查看文档就知道读0X350地址的数据就行.文档名称为:FSUIPC4 Offsets Status.pdf

然后可以利用SDK里面提供的例程,修改成自己的接口程序,比如说我用BCB的,读取一个NAV1就是
if (!FSUIPC_Read(0x0350, 2, &FSUIPC_FS_NAV1, &dwResult)||!FSUIPC_Process())//读NAV1频率
{
}
               sprintf(String, "%x", FSUIPC_FS_NAV1 );
               Frequency_Format(String);
               FSDATA.dwNav1_ACT=s_adjfreq;
               Edit1->Text = FSDATA.dwNav1_ACT;
FSUIPC_Read就是作者提供的读取函数.
这是我做的接口程序


[ 本帖最后由 ppqq 于 2009-7-29 15:56 编辑 ]

FlyBNB 发表于 2009-7-29 05:40:40

强人哦!顶一个!这种东西要是量产了以合适的价格出售会有很不错的市场。

weidang 发表于 2009-7-29 06:24:45

挺强的.很不错啊.

silverliu 发表于 2009-7-29 07:08:16

21世纪论坛最缺啥?人才!

somethingfly 发表于 2009-7-29 11:45:08

呵呵,强烈支持!

lcq-07 发表于 2009-7-29 11:56:28

楼主怎样找的游戏运行时的数据
分享一下,在其他电子方面有需要的我可以帮点忙哦?

frendly 发表于 2009-7-29 12:28:22

楼主很强大,而且善于分享。

zouyun001 发表于 2009-8-2 17:12:26

建议开个新版块了

legeny 发表于 2009-8-3 21:41:58

支持原创
支持DIY

yknyd 发表于 2009-8-11 02:53:43

天书哇!!还要编程……
页: [1]
查看完整版本: 我做的山寨仪表板-DIY进行中