DA系列开发

1、数据层和应用层不符合高内聚低耦合的规则导致项目出现依赖循环引用。


Form依赖comprocess文件中的BuildFrame将数据封装放入发送队列SendList中;ReceiveDataProcess接收数据后依赖Form文件更新UI;comprocess则依赖ReceiveDataProcess处理接收到的数据并利用Form更新。可以考虑修改的地方是comprocess中的BuildFrame作为BuildFrame类分别放在Form的项目中。


2、struct和class的区别

*值类型在内存的一个地方(称为堆栈)存储它们自己和它们的内存;

*引用类型在内存的一个地方(称为堆)存储一个引用,而在另一个地方存储内容。

在选择struct和class类型时基于程序中对实例的复制是深度复制还是引用,就DA系列而言,需要考虑实例时AMddr和DSPddr,最好能在实例化时利用自定义的构造函数对AMddr和DSPddr赋值,减少BuildFrame时不必要的麻烦和出错的概率。

例如:

    [StructLayoutAttribute(LayoutKind.Sequential)]
    public class AMInfoEQGet
    {
        public PresetInfo presetInfo;
        public AMInfo amInfo = new AMInfo();
        public AMInfoEQGet(byte Chn, byte eqIndex)
        {
            switch (Chn)
            {
                case commDeclare.AMI_PEQ_OUT1:
                    amInfo.Addr = (ushort)(24 + 12 * eqIndex);
                    break;
                case commDeclare.AMI_PEQ_OUT2:
                    amInfo.Addr=(ushort)(144 + 12*eqIndex);
                    break;
            }
            amInfo.DataSize = 12;
            amInfo.DspDataOffset = 5;
        }
    }

措施:必要时改变实例化的过程(构造函数)和修改BuildFrame引入的参数。


3、EQ和HLP


深入了解EQ和HLP的控制和如何画相应的曲线。


4、利用XML作为PC存档

序列化对象再保存,反序列化读取。以及LINQ语法的入门。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值