#ifndef __ORDEVICE_CAMERA_HARDWARE_H__
#define __ORDEVICE_CAMERA_HARDWARE_H__
#ifdef KARCH_ENV_WIN
#include <windows.h>
#endif
class ORDeviceCamera_Template_Packet : public FBDeviceCameraPacket
{
public:
ORDeviceCamera_Template_Packet() : FBDeviceCameraPacket()
{
Data = 0;
Time = 0;
}
double Data;
FBTime Time;
};
class ORDeviceCamera_Template_Hardware
{
public:
ORDeviceCamera_Template_Hardware();
virtual ~ORDeviceCamera_Template_Hardware();
void SetDevice( FBDevice* pDevice ) { mDevice = pDevice; }
bool Init ();
bool Open ();
bool Close ();
bool Done ();
bool GetSetupInfo();
bool StartDataStream();
bool StopDataStream();
bool FetchDataPacket ();
int GetCommunicationType() { return mDevice->CommType; }
void SetNetworkAddress (const char* pIPAddress){ mNetworkAddress = pIPAddress; }
const char* GetNetworkAddress () { return (char *)mNetworkAddress; }
void SetNetworkPort (int pPort) { mNetworkPort = pPort; }
int GetNetworkPort () { return mNetworkPort; }
void SetNetworkProtocol (
FBCommType pType ) { mNetworkProtocol = pType; }
FBCommType GetNetworkProtocol () {
return mNetworkProtocol; }
void SetSerialPort (int pPort) { mSerialPort = pPort; }
int GetSerialPort () { return mSerialPort; }
void SetSerialBaudRate (int pRate) { mSerialBaudRate = pRate; }
int GetSerialBaudRate () { return mSerialBaudRate; }
void SetSharedMemoryHandle( const char* pHandle ){ mHandleName = pHandle; }
const char* GetSharedMemoryHandle() { return mHandleName; }
void SetSharedMemoryAddress( kReference pAddr) { mHandleAddress = pAddr; }
kReference GetSharedMemoryAddress() { return mHandleAddress; }
void SetSimulatorFrequency ( double pFrequency ) { mFrequency = pFrequency; }
double GetSimulatorFrequency () { return mFrequency; }
void SetSimulatorAmplitude ( double pAmplitude ) { mAmplitude = pAmplitude; }
double GetSimulatorAmplitude () { return mAmplitude; }
void SetSimulatorZoom ( double pZoom ) { mZoom = pZoom; }
double GetSimulatorZoom () { return mZoom; }
void SetSimulatorFocus ( double pFocus ) { mFocus = pFocus; }
double GetSimulatorFocus () { return mFocus; }
void SetHardwareSetting( double pSetting ) { mHardwareSetting = pSetting; }
double GetHardwareSetting( ) { return mHardwareSetting; }
FBTime GetTime() { return mDefaultPacket.Time; }
double GetData() { return mDefaultPacket.Data; }
FBVector3d GetRotation() {
return mDefaultPacket.Rotation; }
FBVector3d GetPosition() {
return mDefaultPacket.Position; }
FBVector2d GetOpticalCenter() {
return mDefaultPacket.OpticalCenter; }
double GetFocus() { return mDefaultPacket.Focus; }
double GetZoom() { return mDefaultPacket.Zoom; }
long GetSync() { return mCounter; }
bool RealTimeUpdate();
private:
FBSystem mSystem;
int mCounter;
FBCommPort mCommPort;
int mSerialPort;
int mSerialBaudRate;
FBTCPIP mTCPIP;
int mNetworkSocket;
FBString mNetworkAddress;
int mNetworkPort;
FBString mHandleName;
kReference mHandleAddress;
#ifdef KARCH_ENV_WIN
HANDLE mShmHandle;
#endif
double mFrequency;
double mAmplitude;
double mZoom;
double mFocus;
double mHardwareSetting;
ORDeviceCamera_Template_Packet mDefaultPacket;
FBDevice* mDevice;
};
#endif