#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.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 sendModbusDataToCPU(); void processCPUModbus(); // TODO private: canSpace::CAN _canb; interface::DigitalIO _digitalIO; Uint16* _zone6_ptr; DSP28335::SCIB _scib; SoftwareVersion _softVersion; canSpace::CANMessage _message; bool _modbusInitFlag; uint16_t _modbusRegCounter; public: MODBUSRTU::ModbusRTU modbusRTU; };