[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Нужна помощь в С++/Python



Товарищи, помогите! Необходимо написать программу для чтения бинарного файла под linux. Структура файла описана в test.cpp. Сам файл - file.bsm
Конечная цель - запись данных в СУБД.

Программу можно написать как на С++, так и на python.

Был бы крайне признателен за кусок кода, описывающий пример работы (чтение данных) с этим файлом.

Заранее благодарю!


--
WBR, Andrey N. Prokofiev
IT department of the Korona Auto Ltd.
Jabber ID: andy@korona-auto.com
E-mail: andy@korona-auto.com
Work Phone: +7-812-645-36-16 (ext. 100)
#include <stdint.h>

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	//оÑ?кÑ?Ñ?Ñ?о 
};

//typedef struct _SYSTEMTIME {
//	uint16_t wYear;
//	uint16_t wMonth;
//	uint16_t wDayOfWeek;
//	uint16_t wDay;
//	uint16_t wHour;
//	uint16_t wMinute;
//	uint16_t wSecond;
//	uint16_t wMilliseconds;
//} SYSTEMTIME;

Attachment: file.bsm
Description: Binary data


Reply to: