You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4 KiB
C++

// OmronLaserScanner.h: interface for the COmronLaserScanner class.
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include <string>
#include "Scanner.h"
#ifdef BUILD_COMMDLL
#define COMMDLL_DLLCLASS __declspec(dllexport)
#else
#define COMMDLL_DLLCLASS __declspec(dllimport)
#endif
class COMMDLL_DLLCLASS COmronLaserScanner : public CScanner
{
public:
// ctor
COmronLaserScanner();
virtual ~COmronLaserScanner();
// methods
bool ZeroRelease();
std::string GetReceiveData();
bool IsInit();
bool Measure(double& dHeight);
bool Zero();
void ReceiveComm(const char* cpcBuffer, int nSize) override;
bool Init();
private:
bool GetDecimalPointPosition();
bool SendMsg(std::string strMsg);
char CalBCC(const char* cpcBuffer);
HANDLE m_hSuccess;
bool m_bInitBefore{ false };
std::string m_strNodeNo; // "00" for ZX-SF11
std::string m_strSubAddress; // Not Used for ZX-SF11, default "00"
std::string m_strSID; // Service ID, 1byte
std::string m_strMRC; // Main Request Code, 2 bytes
std::string m_strSRC; // Sub Request Code, 2 bytes
std::string m_strCommand;
std::string m_strReadout;
bool m_bGetDecimal;
std::string m_strDecimal;
int m_nDecimal;
bool m_bWaitForBCC{ false };
std::string m_strSign;
};