⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alarmfile.h

📁 采集卡demo
💻 H
字号:
#ifndef ALARM_FILE_H
#define ALARM_FILE_H
#include "stdafx.h"
#include "datatype.h"

#define FRAME_INFO_HEADER_MAGIC 0x20020620
typedef struct tagFrame_Header{
	ULONG			magic;
	FrameType_t		frameType;
	ULONG			frameLen;
	ULONG			breakable;
}FRAME_INFO_HEADER, *PFRAME_INFO_HEADER;

#define FRAME_STACK_SIZE 400 // 400 frames can be hold in the buf
#define FRAME_BUF_SIZE   512 * 1024// 1 M bytes

class AlarmFile {
public:
	BOOL			bInitOk;
	int framesToStopWrite; // frames that will continously be written when alarm triggered
	int framesBeforeCurPos; // frames before alarm triggered that will be written 
	FRAME_INFO_HEADER	frameStack[FRAME_STACK_SIZE];
	UCHAR *frameBuf, *tempBuf;
	int writePtr;
	int readPtr;
	int count;
	int size;
	int curFrameRate;
	int framesCounter;
	int framesToWriteImmediatly;
	BOOL canStopWrite;

	AlarmFile();
	// time of frames before trigger and after 
	int Setup(ULONG framesBeforeAlarm, ULONG framesAfterAlarm); 
	// buffer the frame
	int FramePush(int fileHandle, UCHAR *frameData, ULONG length, FrameType_t frameType, BOOL breakable); 
	//start writting file
	int Trigger(int fileHandle); 
	int Reset();
private:
	int MakeRoom(int length);
	int StoreData(UCHAR *dataBuf, int length);
	int GetData(UCHAR *dataBuf, int length);
	int WriteData(int fileHandle, int length);
	int RemoveData(int length);
	int TypeToFrames(FrameType_t frameType);
	~AlarmFile();
};
	
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -