|
- #include "plsr_modbus_data.h"
- #include "modbus_data_store.h"
- #include <stddef.h>
-
- static uint8_t PlsrModbusDevice(PLSR_DEVICE_TYPE device,
- MODBUS_DATA_DEVICE *modbusDevice)
- {
- if ((modbusDevice == NULL) || (device > PLSR_DEVICE_FD))
- {
- return 0U;
- }
- *modbusDevice = (MODBUS_DATA_DEVICE)device;
- return 1U;
- }
-
- static uint8_t PlsrModbusValidateWords(void *context,
- PLSR_DEVICE_TYPE device,
- uint32_t firstAddress,
- uint32_t wordCount)
- {
- MODBUS_DATA_DEVICE modbusDevice;
-
- (void)context;
- if (PlsrModbusDevice(device, &modbusDevice) == 0U)
- {
- return 0U;
- }
- return ModbusDataValidateWords(modbusDevice, firstAddress, wordCount);
- }
-
- static uint8_t PlsrModbusReadWord(void *context,
- PLSR_DEVICE_TYPE device,
- uint32_t address,
- uint16_t *value)
- {
- MODBUS_DATA_DEVICE modbusDevice;
-
- (void)context;
- if (PlsrModbusDevice(device, &modbusDevice) == 0U)
- {
- return 0U;
- }
- return ModbusDataReadWord(modbusDevice, address, value);
- }
-
- static uint8_t PlsrModbusReadDword(void *context,
- PLSR_DEVICE_TYPE device,
- uint32_t address,
- int32_t *value)
- {
- MODBUS_DATA_DEVICE modbusDevice;
-
- (void)context;
- if (PlsrModbusDevice(device, &modbusDevice) == 0U)
- {
- return 0U;
- }
- return ModbusDataReadDword(modbusDevice, address, value);
- }
-
- void PlsrModbusDataSourceInit(PLSR_DATA_SOURCE *source)
- {
- if (source == NULL)
- {
- return;
- }
- source->context = NULL;
- source->validateWords = PlsrModbusValidateWords;
- source->readWord = PlsrModbusReadWord;
- source->readDword = PlsrModbusReadDword;
- source->readBit = NULL;
- }
|