|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
#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"
|
|
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
//<>
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|