📄 gps_interface.h
字号:
/* ************************************************************************
Header of IoInterface class;
IoInterface class visit WDM driver of USB interface board;
Its duty is to collect measurement and accumulation data for 6 channel
and send command to hardware which comes from GpsFunc's processing;
Author : Yu Lu
luyu1974@gmail.com
***************************************************************************/
//---------------------------------------------------------------------------
#ifndef GPS_INTERFACE_H
#define GPS_INTERFACE_H
#include <windows.h>
#include <stdio.h>
#include <initguid.h>
#include <winioctl.h>
#include <fstream.h>
#include <Setupapi.h>
#include <assert.h>
#include "usb100.h"
#include "Ioctls.h"
#include "sampthread.h"
#include "gbl_var.h"
DEFINE_GUID(GUID_INTERFACE_USBGPS, 0x7e5d68b2L, 0x68ee, 0x4e8d, 0x86, 0x20, 0x1d, 0xa2, 0x92, 0x04, 0xab, 0x3f);
//---------------------------------------------------------------------------
class IoInterface {
private:
ofstream infofile;
char completeDeviceName[256];
bool handleOpened;
HANDLE gpsHandle;
unsigned char ping_pong_flag; // indicate which buffer is available
gp2021_regs gp2021regs[2]; // two buffer for ping-pong buffering
unsigned char tracking_data[2][LENG_OF_ONE_FRAME]; // two buffer for ping-pong buffering
SamplingThread *s_thread;
bool thrdtermed;
unsigned short count; // for debugging use
//The following 3 functions are used to open the usb handle
HANDLE OpenOneDevice( HDEVINFO HDDeviceInfo,
PSP_INTERFACE_DEVICE_DATA DeviceInfoData,
char *devName );
HANDLE OpenUsbDevice( LPGUID pGuid, char *outNameBuf);
HANDLE OpenHandle();
public:
IoInterface();
~IoInterface();
int InitProc();
void PrintDbgInfo(char*);
void CreatSampleThrd();
void ThrdTerminate();
bool NavThrdIsTermed();
void SetThrdStatus(bool);
bool IsHandleOpened();
void clear_all_reg(unsigned char bufferflag);
bool read_usbn9603_reg(const unsigned char addr,
unsigned char *out);
bool read_usbn9603_allreg( unsigned char *out);
bool read_gp2021_reg(const unsigned char addr,
unsigned int *out);
bool write_gp2021_reg(const unsigned char addr,
const unsigned int in);
bool read_gp2021_all(unsigned int *out);
bool write_gp2021_all(unsigned char *in,
unsigned int size);
bool rd_wr_gp2021_all(char bufferflag,bool needreturn, unsigned char *out);
bool control_gp2021( char flag);
bool WriteReadGP2021(unsigned char pp_flag);
// copy gps data to des
void CopyData(unsigned char *des);
// get control data from src , stored in buffer indicated by bufferflag
void GetCntlData(char bufferflag, unsigned char *src);
void set_pp_flag( char PPflag);
unsigned char get_pp_flag(void);
unsigned char get_free_pp_flag(void);
unsigned char toggle_pp_flag(void);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -