В исходном коде, который зашит в устройство есть такая структура:
__packed struct {
uint32_t Sec : 6 ;
uint32_t Min : 6 ;
uint32_t Hour : 5 ;
uint32_t Date : 5 ;
uint32_t Month : 4 ;
uint8_t Year : 7 ;
uint8_t TimeInvalid : 1 ;
} Time ;
Данная структура помещается в массив из 5 байт. Как обработать эту структуру на C#? Проблема в том, что поля структуры не разделены по отдельным байтам. Есть ли возможность создать структуры с полями, у которых указан размер в битах? И как создать структуру из массива байтов?
C# нативно не поддерживает битовые поля. Придется делать структуру(или массив) из пяти байт. И работать с ними в ручную. Либо использовать разные хаки
Вот как можно описать структуру:
[StructLayout(LayoutKind.Sequential, Pack=0)]
struct ExampleStruct
{
public byte b1;
public byte b2;
public byte b3;
public byte b4;
public byte b5;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости