请原谅我,如果已经回答,我已经搜索过,并没有找到相关的帖子。
我有很多协议控制器可以做同样的事情(打开,关闭,读取,写入,摆动gpios。)
我已经定义了一个涵盖这些常用功能的接口,我可以在类上包含并实现它们没问题。
interface II2C
{
List<string> DevicesList { get; set; }
List<string> GetDevices(out string errorStr);
void SelectDevice(int deviceListIndex, out string errorStr);
bool Open( out string errorStr);
bool Close( out string errorStr);
void SetBusFrequency( string frequency, out string errorStr);
string GetBusFrequency(out string errorStr);
void Write(string slaveAddress, string memAddr, string memSize, string hexData, out string errorStr);
string Read(string slaveAddress, string memAddr, string memSize, string byteCount, out string errorStr);
void StartI2C(out string errorStr);
void StopI2C(out string errorStr);
void SetGpioState(int gpio, bool inOut, bool pullUp, out string errorStr);
bool GetGpioState(int gpio, out string errorStr);
byte[] StringToByteArray(string str, out string errorStr);
}
我想做的是为每个控制器创建一个包含许多不同“Driver.cs”文件的项目,并将其编译为单个DLL,并能够根据控制器的品牌实例化实例。
我从来没有像这样从头开始构建一个库,主要是程序,脚本等。
任何人都可以分享的任何指针或参考都会有很大的帮助。
谢谢, -D