LINUX.ORG.RU

Сообщения AndySPB

 

Чтение бинарных данных из файла

Форум — Development

День добрый. Есть описание структуры:

typedef struct
{
        DWORD Addr;   //адрес контроллера - источника события
        BS_LOG_EVENT Event;  //идентификатор события
        BS_MOD_STATUS status;    //статус исполнительного устройства
        BYTE source;   //резерв=0
        SYSTEMTIME time;  //время события
        DWORD UserID;  //ID пользователя (для персонализированного события) или 0 - для неперсон.
} BS_LOGDATA;

enum BS_LOG_EVENT {
        BS_EV_NOT_RESPONED  =0x01,              //контроллер не отвечает
        BS_EV_USER_ADD   =0x17,                 //пользователь добавлен
        BS_EV_USER_ADD_FAIL  =0x18,             //ошибка добавления пользователя
        BS_EV_WEIG_SCHED_ERROR    =0x24,        //ошибка временного режима
        BS_EV_WEIG_SCHED_DENIED    =0x25,       //отказ входа по карте согласно временному режиму
        BS_EV_IDENT_WEIG_LOCKED    =0x26,       //отказ входа по карте (сотрудник заблокирован)
        BS_EV_IDENT_WEIG_SUCCESS=0x28,          //идентификация по карте успешна
        BS_EV_IDENT_WEIG_FAILED    =0x27,       //идентификация по карте неудачна
        BS_EV_WEIG_HOL_DENIED    =0x29,         //отказ входа по карте (праздник)
        BS_EV_WEIG_HOL_LOCKED    =0x30,         //праздник заблокирован
        BS_EV_MAGNETIC_CARD_ERROR    =0x31,     //ошибка идентификации по магнитной карте
        BS_EV_MAGNETIC_CARD_SUCCESS    =0x32,   //идентификация по магнитной карте успешна
        BS_EV_MAGNETIC_CARD_FAILED    =0x33,    //идентификация по магнитной карте неудачна
        BS_EV_BAD_FINGER  =0x36,                //отпечаток низкого качества
        BS_EV_IDENT_SUCCESS  =0x37,             //идентификация успешна
        BS_EV_IDENT_FAILED  =0x38,              //идентификация неудачна
        BS_EV_NOT_PASS   =0x39,                 //проход не зафиксирован
        BS_EV_USER_DELETE  =0x47,               //пользователь удален
        BS_EV_USER_DEL_FAIL  =0x48,             //ошибка при удалении пользователя
        BS_EV_USER_LOCK   =0x57,                //пользователь заблокирован
        BS_EV_USER_LOCK_FAIL    =0x58,          //ошибка при блокировки пользователя
        BS_EV_IN1_SIGNALED  =0x64,              //сигнал на вход-1
        BS_EV_USER_UNLOCK  =0x67,               //пользователь разблокирован
        BS_EV_USER_UNLOCK_FAIL    =0x68,        //ошибка разблокировки пользователя
        BS_EV_SYSTEM_START  =0x6A,              //перезапуск системы
        BS_EV_TIME_SCHED_DENIED    =0x6D,       //отказано в доступе (временной режим)
        BS_EV_TIME_SCHED_ERROR    =0x6E,        //ошибка временного режима
        BS_EV_HOLIDAY_DENIED    =0x6F,          //отказано в доступе (праздник)
        BS_EV_IDENT_LOCKED_USER    =0x70,       //отказано в доступе (заблокирован)
        BS_EV_HOL_LOCKED  =0x71,                //отказано в доступе (праздник)
        BS_EV_OPEN_FROM_PC  =0x80,              //открыт с ПК
        BS_EV_CLOSE_FROM_PC  =0x81,             //закрыт с ПК
        BS_EV_USER_ENTER  =0x97,                //вход пользователя
        BS_EV_USER_LEAVE  =0x98,                //выход пользователя
        BS_EV_FTR_IDENT_FAILED    =0x99,        //идентификация по футронику неудачна
        BS_EV_TAMPER_SWITCH  =0xA3,             //корпус вскрыт
        BS_EV_SET_USER_SCHED    =0xB0,          //временной режим назначен
        BS_EV_UNSET_USER_SCHED    =0xB1,        //временной режим отменен
        BS_EV_BUR_NOT_CONNECT    =0xB2,         //ошибка связи с БУР

        BS_EV_TUBUS_NOT_CONNECT    =0xB3,       //СК-24 не подключен
        BS_EV_TUBUS_OPEN  =0xB4,                //тубус взят
        BS_EV_TUBUS_CLOSE  =0xB5,               //тубус возвращен
        BS_EV_TUBUS_OPEN_FAILED    =0xB6,       //тубус не взят
        BS_EV_TUBUS_CLOSE_FAILED=0xB7,          //тубус не возвращен
        BS_EV_TUBUS_ADD   =0xB8,                //тубус добавлен
        BS_EV_TUBUS_REMOVE  =0xB9,              //тубус удален
        BS_EV_SET_USER_TUBUS    =0xBA,          //тубус назначен
        BS_EV_UNSET_USER_TUBUS    =0xBC,        //тубус отменен
        BS_EV_GUARD_OFF   =0xBD,                //защита отключена
        BS_EV_TUBUS_NOTASSIGNED    =0xBE,       //тубус не назначен
        BS_EV_FREE_EXIT_ON  =0xE2,              //режим свободного прохода  включен
        BS_EV_FREE_EXIT_OFF  =0xE3,             //режим свободного прохода выключен
        BS_EV_DOOR_NOTCLOSED    =0xE4,          //дверь не закрыта
        BS_EV_MOD_LOCKED_BY_FINGER    =0xE5,    //модуль заблокирован при попытке взлома по отпечатку
        BS_EV_MOD_LOCKED_BY_CARD    =0xE6,      //модуль заблокирован при попытке взлома по карте
        BS_EV_MOD_UNLOCKED  =0xE7,              //модуль разблокирован
        BS_EV_DOOR_NOTOPENED    =0xE8,          //дверь не открыта
        BS_EV_DOOR_CRASHED  =0xE9,              //взлом двери
        BS_EV_INITIALIZED  =0xF0,               //инициализация
        BS_EV_UNKNOWN                           //неизвестное событие
};

enum BS_MOD_STATUS {
        BS_MOD_STATUS_CLOSE    =0,      //закрыто
        BS_MOD_STATUS_OPEN    =1        //открыто
};

Необходимо написать программу на C++/Python для чтения данных и дальнейшего анализа и обработки. Ввиду нехватки знаний, прошу помощи зала. Приведите примерчик чтения данной структуры из файла. При необходимости могу выслать сам бинарник. Заранее спасибо.

AndySPB
()

RSS подписка на новые темы