#pragma once // #include #include #include "DSP28x_Project.h" #include "DSP2833x_Device.h" #include "Protocol/CAN.h" #include "Protocol/CAN_data.h" #include "Protocol/DigitalIO.h" #include "Protocol/MemoryMap.h" #include "DSP28335/SCIBase.h" #include "DSP28335/SCIB.h" // #include "MODBUSRTU/ModbusRTUCRC.h" // #include "MODBUSRTU/ModbusRTUDefines.h" // #include "MODBUSRTU/ModbusRTUTransceiver.h" // #include "MODBUSRTU/ModbusRTUVariant.h" // #include "MODBUSRTU/ModbusRTUTransceiverBase.h" // #include "DSP28335/MeasureTimeInterval.h" // #include "WEINBUS/HeaderWeinbus.h" #include "ModbusRTU.h" struct SoftwareVersion{ Uint16 DSP; Uint16 CPLD; }; class Periphery{ public: Periphery(); void config(); Uint16 getVersionFPGA(); void updateVersionFPGA(); void processDigitalInput(); void processDigitalOutput(); bool isModbusInit() const; void receiveModbusParameters(); void processExternalModbus(); // TODO void processCPUModbus(); // TODO // void test_init_hmi_buffers(); // void setModbusBuffers(); // void addInputRegFloat(uint16_t addr, float& param); // void modbusExecute(); MODBUSRTU::ModbusRTU _modbusRTU; private: canSpace::CAN _canb; interface::DigitalIO _digitalIO; Uint16* _zone6_ptr; DSP28335::SCIB _scib; // MODBUSRTU::ModbusRTUTransceiverSetup _modbusSetup; // MODBUSRTU::ModbusRTUTransceiverConfiguration _modbusConfiguration; // MODBUSRTU::ModbusRTUCRC _crc; // DSP28335::MeasureTimeInterval _intervalMeasure; // MODBUSRTU::ModbusRTUTransceiver _modbusPort; // WEINBUS::WeinbusSlave _ASUTP; SoftwareVersion _softVersion; canSpace::CANMessage _message; bool _modbusInitFlag; Uint16 tempIn; Uint16 tempOut; uint16_t elementCounter; uint32_t test; // // Registers to testing HMI interface // WEINBUS::REGISTER_32 test_hmi_float_reg_400; // WEINBUS::REGISTER_32 test_hmi_float_reg_401; // WEINBUS::REGISTER_32 test_hmi_float_reg_402; // WEINBUS::REGISTER_32 test_hmi_float_reg_403; // WEINBUS::REGISTER_32 test_hmi_float_reg_404; // //<> };