modernise RunComm netAddress & comSetting

* pass const ref struct instead of individual parameter
main
Yik Teng Hie 2 years ago
parent 0cda4f9027
commit 1a2d7ef5e1

@ -11,6 +11,23 @@ constexpr auto MAX_MODULE_INPUT = 11;
constexpr auto MAX_MODULE_OUTPUT = 15; constexpr auto MAX_MODULE_OUTPUT = 15;
constexpr auto MAX_MODULE_MOTOR = 16; constexpr auto MAX_MODULE_MOTOR = 16;
using stNetAddress = struct _stNetAddress
{
std::string strIpAddress{ "127.0.0.1" };
int nPort{ 400 };
};
//
using stComSetting = struct _stComSetting
{
std::string strCommPort{ "COM1" };
long lBaudRate{ 9600 };
std::string strParity{ "None" };
int nDataBits{ 8 };
double dStopBits{ 1.0 };
std::string strFlowCtrl{};
};
using stModule = struct _stModule using stModule = struct _stModule
{ {
_stModule() _stModule()

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -6,38 +6,19 @@
#include <vector> #include <vector>
#include "RUN.H" #include "run.h"
#include "structure.h" #include "structure.h"
#include "DllDefines.h" #include "DllDefines.h"
// //
using stNetAddress = struct _stNetAddress
{
std::string strIpAddress{ "127.0.0.1" };
int nPort{ 400 };
};
//
using stComSetting = struct _stComSetting
{
std::string strCommPort{ "COM1" };
long lBaudRate{ 9600 };
std::string strParity{ "None" };
int nDataBits{ 8 };
double dStopBits{ 1.0 };
};
class MCCTRDLLCLASS CRunComm : public CRun class MCCTRDLLCLASS CRunComm : public CRun
{ {
public: public:
CRunComm(int nID, const std::string& strName, const std::vector<stModule>& modules, const std::vector<int>& iSequenceModuleNo); CRunComm(int nID, const std::string& strName, const std::vector<stModule>& modules, const std::vector<int>& iSequenceModuleNo);
virtual ~CRunComm(); virtual ~CRunComm();
int GetPortNo(bool bMaint = false, int nWhichOne = 0);
std::string GetIpAddress(bool bMaint = false, int nWhichOne = 0);
enum enum
{ {
MAINT_OPEN_COM = 0x1, MAINT_OPEN_COM = 0x1,
@ -49,40 +30,37 @@ public:
}; };
protected: protected:
bool IsMaintenaceCloseCommPort(); bool IsMaintenaceCloseCommPort() const;
bool IsMaintenanceSendComm(); bool IsMaintenanceSendComm() const;
bool IsMaintenaceOpenCommPort(); bool IsMaintenaceOpenCommPort() const;
std::string GetMaintMsg(); std::string GetMaintMsg() const;
bool IsMaintenanceDisconnectPort(); bool IsMaintenanceDisconnectPort() const;
bool IsMaintenanceConnectPort(); bool IsMaintenanceConnectPort() const;
bool IsMaintenanceSendPacket(); bool IsMaintenanceSendPacket() const;
double GetStopBits(bool bMaint = false, int nWhichOne = 0);
int GetDataBits(bool bMaint = false, int nWhichOne = 0); bool SetCommPortSetting(unsigned int nWhichOne, const stComSetting& _comSetting);
long GetBaudRate(bool bMaint = false, int nWhichOne = 0); stComSetting GetCommPortSetting(unsigned int nWhichOne, bool bMaint = false);
std::string GetParity(bool bMaint = false, int nWhichOne = 0);
std::string GetCommPort(bool bMaint = false, int nWhichOne = 0); bool SetNetworkPortSetting(unsigned int nWhichOne, const stNetAddress& _netAddress);
bool GetCommPortSetting(const std::string& csIniFile, const std::string& csSectionName, int nWhichOne = 0); stNetAddress GetNetworkPortSetting(unsigned int nWhichOne, bool bMaint = false);
bool GetNetworkPortSetting(const std::string& csIniFile, const std::string& csSectionName, int nWhichOne = 0);
// send com data to modules in maintenance mode // send com data to modules in maintenance mode
virtual void OnMaintenanceSendCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void OnMaintenanceSendCom(const stComSetting& _comSetting, const std::string& strSendMsg) override;
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl, LPCTSTR lpcSendMsg);
// send open com to modules in maintenance mode // send open com to modules in maintenance mode
virtual void OnMaintenanceOpenCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void OnMaintenanceOpenCom(const stComSetting& _comSetting) override;
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send close com to modules in maintenance mode // send close com to modules in maintenance mode
virtual void OnMaintenanceCloseCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void OnMaintenanceCloseCom(const stComSetting& _comSetting) override;
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send packet to modules in maintenance mode // send packet to modules in maintenance mode
virtual void OnMaintenanceSendPacket(LPCTSTR IpAddress, int iPortNo, LPCTSTR lpcSendMsg); void OnMaintenanceSendPacket(const stNetAddress& _netAddress, const std::string& strSendMsg) override;
// send connect port to modules in maintenance mode // send connect port to modules in maintenance mode
virtual void OnMaintenanceConnectPort(LPCTSTR IpAddress, int iPortNo); void OnMaintenanceConnectPort(const stNetAddress& _netAddress) override;
// send connect port to modules in maintenance mode // send connect port to modules in maintenance mode
virtual void OnMaintenanceDisconnectPort(LPCTSTR IpAddress, int iPortNo); void OnMaintenanceDisconnectPort(const stNetAddress& _netAddress) override;
// write acknowledge message to text file // write acknowledge message to text file
void WriteAckToTextFile(const std::string& strAckMsg); void WriteAckToTextFile(const std::string& strAckMsg);
@ -93,11 +71,12 @@ protected:
virtual void SendComm(const std::string& strAckMsg = ""); virtual void SendComm(const std::string& strAckMsg = "");
virtual void CloseCommPort(const std::string& strAckMsg = ""); virtual void CloseCommPort(const std::string& strAckMsg = "");
virtual void OpenCommPort(const std::string& strAckMsg = ""); virtual void OpenCommPort(const std::string& strAckMsg = "");
void InitCommSettings(LPCTSTR lpcComPort, long lBaudRate, int iDataBits, LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
void SetMaintCommSettings(const stComSetting& _comSetting);
private: private:
// Maintenance use // Maintenance use
char m_cComCommand; char m_cComCommand{ 0 };
std::string m_strMaintSendMsg; std::string m_strMaintSendMsg;
// TCP/IP Maintenance variables // TCP/IP Maintenance variables

@ -90,7 +90,7 @@ public:
// new method to inform UI of OPE status/signal // new method to inform UI of OPE status/signal
bool PostOPESignal(unsigned int uinSignal); bool PostOPESignal(unsigned int uinSignal);
bool IsMaintenanceOperationCompleted(); bool IsMaintenanceOperationCompleted() const;
void StopMaintenanceOperation(); void StopMaintenanceOperation();
void StartMaintenanceOperation(); void StartMaintenanceOperation();
bool PostGeneralMessageToGUI(WPARAM wParam, LPARAM lParam); bool PostGeneralMessageToGUI(WPARAM wParam, LPARAM lParam);
@ -252,25 +252,22 @@ public:
bool IsPowerUpRestart() const; bool IsPowerUpRestart() const;
// send com data to modules in maintenance mode // send com data to modules in maintenance mode
virtual void OnMaintenanceSendCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, virtual void OnMaintenanceSendCom(const stComSetting& _comSetting, const std::string& strSendMsg);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl, LPCTSTR lpcSendMsg);
// send open com to modules in maintenance mode // send open com to modules in maintenance mode
virtual void OnMaintenanceOpenCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, virtual void OnMaintenanceOpenCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send close com to modules in maintenance mode // send close com to modules in maintenance mode
virtual void OnMaintenanceCloseCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, virtual void OnMaintenanceCloseCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send packet to modules in maintenance mode // send packet to modules in maintenance mode
virtual void OnMaintenanceSendPacket(LPCTSTR IpAddress, int iPortNo, LPCTSTR lpcSendMsg); virtual void OnMaintenanceSendPacket(const stNetAddress& _netAddress, const std::string& strSendMsg);
// send connect port to modules in maintenance mode // send connect port to modules in maintenance mode
virtual void OnMaintenanceConnectPort(LPCTSTR IpAddress, int iPortNo); virtual void OnMaintenanceConnectPort(const stNetAddress& _netAddress);
// send connect port to modules in maintenance mode // send connect port to modules in maintenance mode
virtual void OnMaintenanceDisconnectPort(LPCTSTR IpAddress, int iPortNo); virtual void OnMaintenanceDisconnectPort(const stNetAddress& _netAddress);
// get main application window handler // get main application window handler
void GetHwnd(HWND hwnd); void GetHwnd(HWND hwnd);

@ -433,25 +433,22 @@ public:
HWND GetMainGuiWnd(); HWND GetMainGuiWnd();
// send com data to all run modules in maintenance mode // send com data to all run modules in maintenance mode
void MaintenanceSendCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void MaintenanceSendCom(const stComSetting& _comSetting, const std::string& strSendMsg);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl, LPCTSTR lpcSendMsg);
// send open com to all run modules in maintenance mode // send open com to all run modules in maintenance mode
void MaintenanceOpenCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void MaintenanceOpenCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send close com to all run modules in maintenance mode // send close com to all run modules in maintenance mode
void MaintenanceCloseCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void MaintenanceCloseCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send packet in maintenance mode // send packet in maintenance mode
void MaintenanceSendPacket(LPCTSTR IpAddress, int iPortNo, LPCTSTR lpcSendMsg); void MaintenanceSendPacket(const stNetAddress& _netAddress, const std::string& strSendMsg);
// connect port in maintenance mode // connect port in maintenance mode
void MaintenanceConnectPort(LPCTSTR IpAddress, int iPortNo); void MaintenanceConnectPort(const stNetAddress& _netAddress);
// connect port in maintenance mode // connect port in maintenance mode
void MaintenanceDisconnectPort(LPCTSTR IpAddress, int iPortNo); void MaintenanceDisconnectPort(const stNetAddress& _netAddress);
// setup SeqRun Module Mapping // setup SeqRun Module Mapping
int GetSequenceModuleNo(int nModuleIndex); int GetSequenceModuleNo(int nModuleIndex);
@ -515,25 +512,22 @@ public:
void CheckResetRunPuComplete(); void CheckResetRunPuComplete();
// send com data to all run modules in maintenance mode // send com data to all run modules in maintenance mode
void OnMaintenanceSendCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, LPCTSTR lpcParity, float fStopBits, void OnMaintenanceSendCom(const stComSetting& _comSetting, const std::string& strSendMsg);
LPCTSTR lpcFlowCtrl, LPCTSTR lpcSendMsg);
// send open com to all run modules in maintenance mode // send open com to all run modules in maintenance mode
void OnMaintenanceOpenCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void OnMaintenanceOpenCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send close com to all run modules in maintenance mode // send close com to all run modules in maintenance mode
void OnMaintenanceCloseCom(LPCTSTR lpcComPort, int iBaudRate, int iDataBits, void OnMaintenanceCloseCom(const stComSetting& _comSetting);
LPCTSTR lpcParity, float fStopBits, LPCTSTR lpcFlowCtrl);
// send packet in maintenance mode // send packet in maintenance mode
void OnMaintenanceSendPacket(LPCTSTR IpAddress, int iPortNo, LPCTSTR lpcSendMsg); void OnMaintenanceSendPacket(const stNetAddress& _netAddress, const std::string& strSendMsg);
// connect port in maintenance mode // connect port in maintenance mode
void OnMaintenanceConnectPort(LPCTSTR IpAddress, int iPortNo); void OnMaintenanceConnectPort(const stNetAddress& _netAddress);
// disconnect port in maintenance mode // disconnect port in maintenance mode
void OnMaintenanceDisconnectPort(LPCTSTR IpAddress, int iPortNo); void OnMaintenanceDisconnectPort(const stNetAddress& _netAddress);
void SetCustomizedTowerLight(int customLightId); void SetCustomizedTowerLight(int customLightId);
void ClearCustomizedTowerLight(); void ClearCustomizedTowerLight();
@ -750,7 +744,7 @@ private:
double m_dJamStartTime; // jam Start time double m_dJamStartTime; // jam Start time
double m_dJamEndTime; // jam end time double m_dJamEndTime; // jam end time
enum enum class eComCmd
{ {
NO_CMD = -1, NO_CMD = -1,
SEND_COM, SEND_COM,
@ -761,17 +755,12 @@ private:
DISCONNECT_PORT, DISCONNECT_PORT,
}; };
int m_iComCmd{ NO_CMD }; eComCmd m_eComCmd{ eComCmd::NO_CMD };
char m_lpcComPort[10];
int m_iBaudRate; stComSetting m_comSetting;
int m_iDataBits; stNetAddress m_netAddress;
char m_lpcParity[10];
float m_fStopBits; std::string m_strSendMsg;
char m_lpcFlowCtrl[10];
char m_lpcSendMsg[100];
char m_IpAddress[100];
int m_iPortNo;
CEvt m_evtIpControllerStartUpdate{ "INPUT CONTROLLER START UPDATE" }; CEvt m_evtIpControllerStartUpdate{ "INPUT CONTROLLER START UPDATE" };
CEvt m_evtOpControllerStartUpdate{ "OUTPUT CONTROLLER START UPDATE" }; CEvt m_evtOpControllerStartUpdate{ "OUTPUT CONTROLLER START UPDATE" };

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save