上位机管理程序中的软件独立性

只要做硬件产品的公司,必然要编写各种管理软件,处理与硬件的协议,485,TCP。等等 。传输数据时总是要定义结构体的,于是这类项目中,基本都是硬件说了算,而软件往往成了悲哀的附庸,而往往软件的复杂性就在于兼容不断更新的硬件版本。由此,BUG不断。


此BLOG的主题就是:软件设计人员要尽可能参与到硬件产品的设计上去,即使看起来只是一个新硬件的开发或者改动,看起来和软件没什么 关系,只要协议保持不变,软件就独立了。但还是要参与,要了解设计理念与细节,否则,硬件就是一个黑盒子。


软件要独立,但要了解硬件具体是怎么设计的。按协议 ,按细节,以软件自身的设计方式为准,不要去迎合硬件的设计。


举例说明:


硬件中的一个设置参数的协议,可能需要以下参数:

句柄(或者IP)

INT A

BYTE B

CHAR C[100]

CHAR *D


与其费尽力气去考虑声明顺序,数据类型,内存对齐,不如完全忽视硬件方面的字段声明,按软件自己的要求想怎么声明就怎么声明

至于当硬件需要我们提供数据时,很好,

一句解决问题

REF BYTE PARA

如:


[DllImport(CommDLL, EntryPoint = "Set_NodePara")]
        public static extern int Set_NodePara
            (
            IntPtr hwnd,
             ref byte SysPara
            );

至于硬件收到了怎么去解析,那是他们的事情,我们只要按协议,把我们用到的数据写到内存中去就好了。没我们什么 事。

相当于提供N个适配器来匹配不同的硬件版本。

为什么 一定要声明为



[DllImport(CommDLL, EntryPoint = "Set_NodePara")]
        public static extern int Set_NodePara
            (
            IntPtr hwnd,
            int a,

           byte b,

          StringBuilder c,

           ref byte d


            );



软件要有自己的思维。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值