- various improvements in SE drivers

This commit is contained in:
zolliker
2006-08-17 15:39:37 +00:00
parent 928738dbd8
commit ce25823567
19 changed files with 301 additions and 100 deletions

View File

@@ -337,12 +337,17 @@ float ModBusGetFloat(EaseBase *eab, int adr) {
return ieee2double(eab->ans + 3 + i * 4);
}
/*----------------------------------------------------------------------------*/
void ModBusRequestValue(EaseBase *eab, int adr) {
void ModBusRequestValue(EaseBase *eab, int adr, int type) {
eab->cmd[0] = 1; /* device address */
eab->cmd[1] = 3; /* read n words */
fadr2word(adr, eab->cmd + 2);
uint2word(2, eab->cmd + 4);
if (type == modBusInt) {
uint2word(adr, eab->cmd + 2);
uint2word(1, eab->cmd + 4);
} else {
fadr2word(adr, eab->cmd + 2);
uint2word(2, eab->cmd + 4);
}
ModBusWrite(eab, 6);
}
/*----------------------------------------------------------------------------*/
@@ -351,13 +356,11 @@ void ModBusPutValue(EaseBase *eab, int adr, int type, float val) {
eab->cmd[0] = 1; /* device address */
eab->cmd[1] = 16; /* write n words */
if (type == modBusTime+9) {
if (type == modBusInt) {
uint2word(adr, eab->cmd + 2);
eab->cmd[4] = 2;
eab->cmd[5] = 0;
eab->cmd[6] = 1;
eab->cmd[7] = (int)(val) / 256;
eab->cmd[8] = (int)(val) % 256;
uint2word(1, eab->cmd + 4);
eab->cmd[6] = 2;
uint2word((int)(val), eab->cmd+7);
ModBusWrite(eab, 9);
return;
}