Nếu bạn đang đi để đối phó với thậm chí nhiều hơn một loại thiết bị, sau đó điều khiển + thiết bị giao diện tách, mà giao tiếp bằng cặp Tên vlaue sẽ là một giải pháp tốt
tách
Sử dụng giá trị tên cặp cho phép bạn tách mã của bạn thành một thiết bị điều khiển + + mã ứng dụng cấu trúc
mẫu mã
class DeviceInterface
{
void Initialize(IController & Controller);
void Close();
bool ChangeParameter(const string & Name, const string & Value);
bool GetParam(string & Name, string &Value);
}
Mỗi thực hiện thiết bị, khi tạo nên được tạo ra với việc xác định các bộ điều khiển có thể chấp nhận các lệnh của nó và dịch chúng thành các thiết bị thực tế lệnh
interface IController
{
Initialize(DeviceSpecific & Params);
Close();
bool ChangeParameter(string & Name, string & Value);
bool ChangeParams(string & Name[], string &Value []);
}
mã người dùng của bạn sẽ giống như
này
IController objController = new MeasurementDevice(MeasureParram);
DeviceInterface MeasureDevice = new DeviceInterface(objController);
string Value;
MeasureDevice.GetParam("Temperature", Value);
if (ConvertStringToInt(Value) > 80)
{
MeasureDevice.ChangeParameter("Shutdown", "True");
RaiseAlert();
}
Tất cả những gì lớp DeviceInterface nên làm là cẩn thận truyền các lệnh tới bộ điều khiển. Bộ điều khiển nên chú ý đến giao tiếp của thiết bị.
Ưu điểm của giao diện tách
Protect againt thay đổi
này loại tách sẽ cho phép bạn để cô lập mã ứng dụng của bạn từ bộ điều khiển.Những thay đổi trong thiết bị không ảnh hưởng đến người sử dụng mã của bạn
năng bảo trì của appliction Mã
Addtionally mã người dùng luôn được sạch sẽ và bạn cần phải bận tâm duy nhất với logic ứng dụng. Nhưng bạn đã định nghĩa nhiều giao diện/tạo mẫu hoặc generics với nhiều kiểu tham số cụ thể cho bộ điều khiển, mã của bạn sẽ có rất nhiều thiết bị phụ thuộc vào nó, có thể làm tổn thương khả năng đọc và tạo ra các vấn đề bảo trì bất cứ khi nào thiết bị của bạn thay đổi.
dễ dàng thực hiện
Bạn cũng có thể chia ổ triển khai bộ điều khiển khác nhau vào các dự án riêng của mình. Ngoài ra, ứng dụng của bạn cũng có thể cấu hình các lệnh và phản hồi trong một naure động hơn bằng cách sử dụng các tệp XML, vv có thể gửi cùng với các lớp điều khiển sao cho toàn bộ ứng dụng của bạn trở nên năng động hơn trong tự nhiên.
Real Life
Một trong những dự án điều khiển sản xuất mới nhất từ các nhà lãnh đạo trong phạm vi mà làm việc theo cách tương tự. Nhưng họ sử dụng LON để giao tiếp thiết bị.
LON?
LON giao thức được sử dụng trong điều khiển (nghĩ máy lạnh/nồi hơi/quạt vv) mạng sử dụng khái niệm này để nói chuyện với các thiết bị khác nhau
Vì vậy, tất cả những gì bạn sẽ cần phải có là một giao diện duy nhất có thể nói chuyện với thiết bị của bạn và sau đó gửi cặp giá trị tên tới nó bằng LON. ông sử dụng một giao thức chuẩn cũng sẽ cho phép bạn nói chuyện với các thiết bị khác ngoài công cụ đo lường của bạn. Có các triển khai mã nguồn mở LON khả dụng nếu thiết bị của bạn sử dụng LON.
Nếu thiết bị của bạn không hỗ trợ LON thì bạn có thể phải thiết kế thứ gì đó mà mã người dùng vẫn hoạt động trên cặp giá trị tên và giao diện ngược lại dịch các cặp giá trị tên thành một cotroller tương ứng tương ứng struct + và giao tiếp với thiết bị individua cách thiết bị hiểu được.
Hy vọng điều này hữu ích.
Bạn có dự định kiểm tra các lớp cụ cụ thể khác nhau hoặc bạn đang sử dụng mô phỏng và sửa đổi phần cứng không? – Kasper
Tôi sẽ sử dụng các bài kiểm tra đơn vị – Enrico