ModbusMaster/RTUStorage.h

00001 // --------------------------------------------------------------------------
00002 #ifndef _RTUSTORAGE_H_
00003 #define _RTUSTORAGE_H_
00004 // -----------------------------------------------------------------------------
00005 #include <ostream>
00006 #include <string>
00007 #include "modbus/ModbusTypes.h"
00008 #include "UniSetTypes.h"
00009 // -----------------------------------------------------------------------------
00010 class ModbusRTUMaster;
00011 // -----------------------------------------------------------------------------
00012 class RTUStorage
00013 {
00014     public:
00015         RTUStorage( ModbusRTU::ModbusAddr addr );
00016         ~RTUStorage();
00017     
00018         void poll( ModbusRTUMaster* mb )
00019                     throw(ModbusRTU::mbException);
00020 
00021         inline ModbusRTU::ModbusAddr getAddress(){ return addr; }
00022         inline bool ping(){ return pingOK; }
00023 
00024         inline void setPollADC( bool set ){ pollADC = set; }
00025         inline void setPollDI( bool set ){ pollDI = set; }
00026         inline void setPollDIO( bool set ){ pollDIO = set; }
00027         inline void setPollUNIO( bool set ){ pollUNIO = set; }
00028         
00029         enum RTUJack
00030         {
00031             nUnknown,
00032             nJ1,    // UNIO48 (FPGA0)
00033             nJ2,    // UNIO48 (FPGA1)
00034             nJ5,    // DIO 16
00035             nX1,    // АЦП (8)
00036             nX2,    // АЦП (8)
00037             nX4,    // DI (8)
00038             nX5     // DI (8)
00039         };
00040         
00041         static RTUJack s2j( const std::string jack );
00042         static std::string j2s( RTUJack j );
00043         
00044         long getInt( RTUJack jack, unsigned short channel, UniversalIO::IOTypes t );
00045         float getFloat( RTUJack jack, unsigned short channel, UniversalIO::IOTypes t );
00046         bool getState( RTUJack jack, unsigned short channel, UniversalIO::IOTypes t );
00047 
00048         static ModbusRTU::ModbusData getRegister( RTUJack jack, unsigned short channel, UniversalIO::IOTypes t );
00049     
00050         // ДОДЕЛАТЬ: setState, setValue
00051         void print();
00052     
00053         friend std::ostream& operator<<(std::ostream& os, RTUStorage& m );
00054         friend std::ostream& operator<<(std::ostream& os, RTUStorage* m );
00055     
00056     protected:
00057         ModbusRTU::ModbusAddr addr;
00058         bool pingOK;
00059         
00060         bool pollADC;
00061         bool pollDI;
00062         bool pollDIO;
00063         bool pollUNIO;
00064         
00065 
00066         float adc[8];       // АЦП
00067         bool di[16];        // Порт 16DI
00068         bool dio_do[16];    // Порт 16DIO DO
00069         bool dio_di[16];    // Порт 16DIO DI
00070         float dio_ai[16];   // Порт 16DIO AI
00071         float dio_ao[16];   // Порт 16DIO AO
00072         bool unio_do[48];   // Порт UNIO48 DO
00073         bool unio_di[48];   // Порт UNIO48 DI
00074         float unio_ai[24];  // Порт UNIO48 AI
00075         float unio_ao[24];  // Порт UNIO48 AO
00076 };
00077 // --------------------------------------------------------------------------
00078 #endif // _RTUSTORAGE_H_
00079 // -----------------------------------------------------------------------------

Документация по UniSet. Последние изменения: Mon Dec 26 11:26:57 2011. Создано системой  doxygen 1.5.9