You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
922 B
C
41 lines
922 B
C
#include "modbus-master.h"
|
|
#include "gefran_gtf.h"
|
|
#include <stdint.h>
|
|
|
|
uint16_t gtf_firmware_version(uint8_t address){
|
|
return gtf_read_register(address, GTF_FIRMWARE_VERSION);
|
|
}
|
|
|
|
uint16_t gtf_read_register(uint8_t address, uint8_t reg){
|
|
uint16_t val = 0;
|
|
readReg(address, reg, 1);
|
|
int8_t res = wait_receive(1, &val, 30);
|
|
|
|
if(!res)
|
|
return val;
|
|
else
|
|
return res;
|
|
}
|
|
|
|
int8_t gtf_write_register(uint8_t address, uint8_t reg, uint16_t value){
|
|
writeReg(address, reg, value);
|
|
return wait_write(100);
|
|
}
|
|
|
|
int8_t gtf_read_coil(uint8_t address, uint8_t coil){
|
|
uint16_t val=0;
|
|
readCoil(address, coil);
|
|
uint8_t res = wait_receive_coil(20);
|
|
if(res)
|
|
return -1;
|
|
return val;
|
|
}
|
|
|
|
int8_t gtf_write_coil(uint8_t address, uint8_t coil, uint8_t val){
|
|
writeCoil(address, coil, val);
|
|
uint8_t res = wait_write(100);
|
|
if(res)
|
|
return -1;
|
|
return val;
|
|
}
|