我主要使用National Instruments的Labwindows CVI作为我的编译器。
我必须创建一个设备接口,并开始寻找所有不同寄存器的结构。
// Interface.h
typedef enum Color{
White,
Black,
Blue
};
typedef struct Register1{
int Bit1:1;
int Bit2:2;
Color col;
} Register1;
// Interface.c
BuildSendMessage(Register1 temp)
{
unsigned int iTemp;
iTemp = temp.Bit1 << 7 + temp.Bit2 << 5 + temp.col;
}
// sample.c
Register1 reg1;
reg1.Bit1 = 0;
reg1.Bit2 = 1;
reg1.col = White;
// Pass to function where message is built up
BuildSendMessage(reg1);
然后我在调用函数中填充结构,然后将结构传递给一个函数,在那里我进行所有的位移,将地址等附加到消息上并通过comm接口发送出来。
这可以改进吗?我应该隐藏更多信息并使用函数填充结构吗?我一直在做很多阅读,这绝对可以使用一些改进。
答案 0 :(得分:0)
我想要做的是我有一个设备,我通过tcp与它交谈 有一份文件解释了每个注册的内容。
...
然后我在调用函数中填充结构,然后传递 结构成一个函数,我做所有的位移,附加 在消息上发送地址等,并通过通讯发送出去 接口
这可以改进,我应该隐藏更多信息吗? 一个函数填充结构?
来自Wikipedia:
在计算机科学中,信息隐藏是原则 在计算机程序中隔离设计决策 最有可能改变,从而保护程序的其他部分 如果改变设计决策,则进行大量修改。该 保护涉及提供稳定的接口,以保护 来自实施的程序的其余部分(细节是 最有可能改变的。)
每个寄存器在设备中的作用不太可能改变,如果它最终应该改变,程序的其他部分可能还需要修改,所以没有必要“隐藏更多信息”。