Создание и передача файлов XML - это пустая трата драгоценного встроенного ЦП.Вместо этого я просто использовал бы массив двоичных байтов, представляющих данные, но я бы использовал структуры, чтобы помочь интерпретировать данные.Структурная особенность C # позволяет легко интерпретировать массив байтов как значимые данные.Вот пример:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct DeviceStatus
{
public UInt16 position; // Byte 0 and 1
public Byte counter; // Byte 2
public Fruit currentFruit; // Byte 3
};
enum Fruit : Byte
{
Off = 0,
Apple = 1,
Orange = 2,
Banana = 3,
}
Тогда у вас будет функция, которая преобразует ваш массив байтов в эту структуру:
public unsafe DeviceStatus getStatus()
{
byte[] dataFromDevice = fetchStatusFromDevice();
fixed (byte* pointer = dataFromDevice)
{
return *(DeviceStatus*)pointer;
}
}
По сравнению с XML этот метод сэкономит процессорное время наустройство и на ПК, и это проще в обслуживании, чем схема XML, с дополнительными функциями для создания и анализа файла XML.Все, что вам нужно сделать, - это убедиться, что определения struct и enum в вашем встроенном устройстве совпадают с определениями в вашем коде C #, чтобы программа и устройство C # согласовали используемый протокол.
ВыВозможно, вы захотите использовать атрибут «упакованные» как на C #, так и на встроенной стороне, чтобы все элементы структуры располагались предсказуемым образом.