@@ -61,6 +61,7 @@ namespace LibMCDriver_BuR {
61
61
**************************************************************************************************************************/
62
62
class CWrapper ;
63
63
class CBase ;
64
+ class CPLCCommand ;
64
65
class CDriver ;
65
66
class CDriver_BuR ;
66
67
@@ -69,6 +70,7 @@ class CDriver_BuR;
69
70
**************************************************************************************************************************/
70
71
typedef CWrapper CLibMCDriver_BuRWrapper;
71
72
typedef CBase CLibMCDriver_BuRBase;
73
+ typedef CPLCCommand CLibMCDriver_BuRPLCCommand;
72
74
typedef CDriver CLibMCDriver_BuRDriver;
73
75
typedef CDriver_BuR CLibMCDriver_BuRDriver_BuR;
74
76
@@ -77,6 +79,7 @@ typedef CDriver_BuR CLibMCDriver_BuRDriver_BuR;
77
79
**************************************************************************************************************************/
78
80
typedef std::shared_ptr<CWrapper> PWrapper;
79
81
typedef std::shared_ptr<CBase> PBase;
82
+ typedef std::shared_ptr<CPLCCommand> PPLCCommand;
80
83
typedef std::shared_ptr<CDriver> PDriver;
81
84
typedef std::shared_ptr<CDriver_BuR> PDriver_BuR;
82
85
@@ -85,6 +88,7 @@ typedef std::shared_ptr<CDriver_BuR> PDriver_BuR;
85
88
**************************************************************************************************************************/
86
89
typedef PWrapper PLibMCDriver_BuRWrapper;
87
90
typedef PBase PLibMCDriver_BuRBase;
91
+ typedef PPLCCommand PLibMCDriver_BuRPLCCommand;
88
92
typedef PDriver PLibMCDriver_BuRDriver;
89
93
typedef PDriver_BuR PLibMCDriver_BuRDriver_BuR;
90
94
@@ -264,6 +268,7 @@ class CWrapper {
264
268
LibMCDriver_BuRResult loadWrapperTableFromSymbolLookupMethod (sLibMCDriver_BuRDynamicWrapperTable * pWrapperTable, void * pSymbolLookupMethod);
265
269
266
270
friend class CBase ;
271
+ friend class CPLCCommand ;
267
272
friend class CDriver ;
268
273
friend class CDriver_BuR ;
269
274
@@ -326,6 +331,25 @@ class CBase {
326
331
friend class CWrapper ;
327
332
};
328
333
334
+ /* ************************************************************************************************************************
335
+ Class CPLCCommand
336
+ **************************************************************************************************************************/
337
+ class CPLCCommand : public CBase {
338
+ public:
339
+
340
+ /* *
341
+ * CPLCCommand::CPLCCommand - Constructor for PLCCommand class.
342
+ */
343
+ CPLCCommand (CWrapper* pWrapper, LibMCDriver_BuRHandle pHandle)
344
+ : CBase(pWrapper, pHandle)
345
+ {
346
+ }
347
+
348
+ inline void SetIntegerParameter (const std::string & sParameterName , const LibMCDriver_BuR_int32 nValue);
349
+ inline void SetBoolParameter (const std::string & sParameterName , const bool bValue);
350
+ inline void SetDoubleParameter (const std::string & sParameterName , const LibMCDriver_BuR_double dValue);
351
+ };
352
+
329
353
/* ************************************************************************************************************************
330
354
Class CDriver
331
355
**************************************************************************************************************************/
@@ -487,6 +511,9 @@ class CDriver_BuR : public CDriver {
487
511
return LIBMCDRIVER_BUR_ERROR_INVALIDPARAM;
488
512
489
513
pWrapperTable->m_LibraryHandle = nullptr ;
514
+ pWrapperTable->m_PLCCommand_SetIntegerParameter = nullptr ;
515
+ pWrapperTable->m_PLCCommand_SetBoolParameter = nullptr ;
516
+ pWrapperTable->m_PLCCommand_SetDoubleParameter = nullptr ;
490
517
pWrapperTable->m_Driver_Configure = nullptr ;
491
518
pWrapperTable->m_Driver_GetName = nullptr ;
492
519
pWrapperTable->m_Driver_GetType = nullptr ;
@@ -550,6 +577,33 @@ class CDriver_BuR : public CDriver {
550
577
dlerror ();
551
578
#endif // _WIN32
552
579
580
+ #ifdef _WIN32
581
+ pWrapperTable->m_PLCCommand_SetIntegerParameter = (PLibMCDriver_BuRPLCCommand_SetIntegerParameterPtr) GetProcAddress (hLibrary, " libmcdriver_bur_plccommand_setintegerparameter" );
582
+ #else // _WIN32
583
+ pWrapperTable->m_PLCCommand_SetIntegerParameter = (PLibMCDriver_BuRPLCCommand_SetIntegerParameterPtr) dlsym (hLibrary, " libmcdriver_bur_plccommand_setintegerparameter" );
584
+ dlerror ();
585
+ #endif // _WIN32
586
+ if (pWrapperTable->m_PLCCommand_SetIntegerParameter == nullptr )
587
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
588
+
589
+ #ifdef _WIN32
590
+ pWrapperTable->m_PLCCommand_SetBoolParameter = (PLibMCDriver_BuRPLCCommand_SetBoolParameterPtr) GetProcAddress (hLibrary, " libmcdriver_bur_plccommand_setboolparameter" );
591
+ #else // _WIN32
592
+ pWrapperTable->m_PLCCommand_SetBoolParameter = (PLibMCDriver_BuRPLCCommand_SetBoolParameterPtr) dlsym (hLibrary, " libmcdriver_bur_plccommand_setboolparameter" );
593
+ dlerror ();
594
+ #endif // _WIN32
595
+ if (pWrapperTable->m_PLCCommand_SetBoolParameter == nullptr )
596
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
597
+
598
+ #ifdef _WIN32
599
+ pWrapperTable->m_PLCCommand_SetDoubleParameter = (PLibMCDriver_BuRPLCCommand_SetDoubleParameterPtr) GetProcAddress (hLibrary, " libmcdriver_bur_plccommand_setdoubleparameter" );
600
+ #else // _WIN32
601
+ pWrapperTable->m_PLCCommand_SetDoubleParameter = (PLibMCDriver_BuRPLCCommand_SetDoubleParameterPtr) dlsym (hLibrary, " libmcdriver_bur_plccommand_setdoubleparameter" );
602
+ dlerror ();
603
+ #endif // _WIN32
604
+ if (pWrapperTable->m_PLCCommand_SetDoubleParameter == nullptr )
605
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
606
+
553
607
#ifdef _WIN32
554
608
pWrapperTable->m_Driver_Configure = (PLibMCDriver_BuRDriver_ConfigurePtr) GetProcAddress (hLibrary, " libmcdriver_bur_driver_configure" );
555
609
#else // _WIN32
@@ -701,6 +755,18 @@ class CDriver_BuR : public CDriver {
701
755
SymbolLookupType pLookup = (SymbolLookupType)pSymbolLookupMethod;
702
756
703
757
LibMCDriver_BuRResult eLookupError = LIBMCDRIVER_BUR_SUCCESS;
758
+ eLookupError = (*pLookup)(" libmcdriver_bur_plccommand_setintegerparameter" , (void **)&(pWrapperTable->m_PLCCommand_SetIntegerParameter ));
759
+ if ( (eLookupError != 0 ) || (pWrapperTable->m_PLCCommand_SetIntegerParameter == nullptr ) )
760
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
761
+
762
+ eLookupError = (*pLookup)(" libmcdriver_bur_plccommand_setboolparameter" , (void **)&(pWrapperTable->m_PLCCommand_SetBoolParameter ));
763
+ if ( (eLookupError != 0 ) || (pWrapperTable->m_PLCCommand_SetBoolParameter == nullptr ) )
764
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
765
+
766
+ eLookupError = (*pLookup)(" libmcdriver_bur_plccommand_setdoubleparameter" , (void **)&(pWrapperTable->m_PLCCommand_SetDoubleParameter ));
767
+ if ( (eLookupError != 0 ) || (pWrapperTable->m_PLCCommand_SetDoubleParameter == nullptr ) )
768
+ return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
769
+
704
770
eLookupError = (*pLookup)(" libmcdriver_bur_driver_configure" , (void **)&(pWrapperTable->m_Driver_Configure ));
705
771
if ( (eLookupError != 0 ) || (pWrapperTable->m_Driver_Configure == nullptr ) )
706
772
return LIBMCDRIVER_BUR_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -770,6 +836,40 @@ class CDriver_BuR : public CDriver {
770
836
* Method definitions for class CBase
771
837
*/
772
838
839
+ /* *
840
+ * Method definitions for class CPLCCommand
841
+ */
842
+
843
+ /* *
844
+ * CPLCCommand::SetIntegerParameter - Sets an integer parameter of the command
845
+ * @param[in] sParameterName - Parameter Value
846
+ * @param[in] nValue - Parameter Value
847
+ */
848
+ void CPLCCommand::SetIntegerParameter (const std::string & sParameterName , const LibMCDriver_BuR_int32 nValue)
849
+ {
850
+ CheckError (m_pWrapper->m_WrapperTable .m_PLCCommand_SetIntegerParameter (m_pHandle, sParameterName .c_str (), nValue));
851
+ }
852
+
853
+ /* *
854
+ * CPLCCommand::SetBoolParameter - Sets a bool parameter of the command
855
+ * @param[in] sParameterName - Parameter Value
856
+ * @param[in] bValue - Parameter Value
857
+ */
858
+ void CPLCCommand::SetBoolParameter (const std::string & sParameterName , const bool bValue)
859
+ {
860
+ CheckError (m_pWrapper->m_WrapperTable .m_PLCCommand_SetBoolParameter (m_pHandle, sParameterName .c_str (), bValue));
861
+ }
862
+
863
+ /* *
864
+ * CPLCCommand::SetDoubleParameter - Sets a double parameter of the command
865
+ * @param[in] sParameterName - Parameter Value
866
+ * @param[in] dValue - Parameter Value
867
+ */
868
+ void CPLCCommand::SetDoubleParameter (const std::string & sParameterName , const LibMCDriver_BuR_double dValue)
869
+ {
870
+ CheckError (m_pWrapper->m_WrapperTable .m_PLCCommand_SetDoubleParameter (m_pHandle, sParameterName .c_str (), dValue));
871
+ }
872
+
773
873
/* *
774
874
* Method definitions for class CDriver
775
875
*/
0 commit comments