aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonathan McCrohan <jmccrohan@gmail.com>2012-04-04 00:11:39 +0100
committerJonathan McCrohan <jmccrohan@gmail.com>2012-04-04 00:11:39 +0100
commit41c3d98e8951107970a35f6104e1cbf15cd87ada (patch)
tree4753be121345540effa3c26cdce5a7f7f8796e2e /src
parent39c058cb9a21d8c093fb14a4f4a013195a0eaf88 (diff)
downloadverteco-41c3d98e8951107970a35f6104e1cbf15cd87ada.tar.gz
modbuslog: flush serial IO buffers on modbus errorv1.6
Diffstat (limited to 'src')
-rw-r--r--src/modbuslog.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/modbuslog.c b/src/modbuslog.c
index cb509ea..3f9b658 100644
--- a/src/modbuslog.c
+++ b/src/modbuslog.c
@@ -44,6 +44,9 @@
#include <syslog.h>
+#include <termios.h>
+#include <fcntl.h>
+
// handle SIGALRM by resetting it
void minute_check(int signum) {
alarm(60);
@@ -271,6 +274,21 @@ int main(int argc, char *argv[]) {
// back off for 2 secs, increasing by 2 for each
// incorrect reply
sleep(2+retry*2);
+
+ // open serial port file descriptor,
+ // flush IO, write zero-ouput, reflush IO,
+ // close file descriptor
+ int fd = open(modbus_device_address, O_RDWR | O_NOCTTY );
+ if (tcflush(fd, TCIOFLUSH) == 0){
+ syslog(LOG_WARNING, "Flushing [%s] serial IO buffer", modbus_device_address);
+ }
+ if (tcsendbreak(fd, 0) == 0){
+ syslog(LOG_WARNING, "Writing zero-value bits to [%s]", modbus_device_address);
+ }
+ if (tcflush(fd, TCIOFLUSH) == 0){
+ syslog(LOG_WARNING, "Reflushing [%s] serial IO buffer", modbus_device_address);
+ }
+ close(fd);
}
retry++;
} while ((rc == -1) && (retry <= modbus_retry));
lass='deletions'>-0/+6 2014-12-28Imported Upstream version 0+git20141218.b46a22cupstream/0+git20141218.b46a22cJonathan McCrohan535-639/+317 2014-10-20Release 0+git20141009.d26b627-1debian/0+git20141009.d26b627-1Jonathan McCrohan1-2/+2 2014-10-20Fix up packaging to account for move to DVBv5Jonathan McCrohan2-2/+6 2014-10-20delete d/dtv-scan-files.install; Upstream now supplies a MakefileJonathan McCrohan2-4/+1 2014-10-15d/control: update Standards Version to 3.9.6Jonathan McCrohan2-1/+3 2014-10-15d/control: add Build-Depends on dvb-toolsJonathan McCrohan2-1/+2 2014-10-15New Upstream Snapshot (commit d26b627)Jonathan McCrohan1-0/+10 2014-10-15Imported Upstream version 0+git20141009.d26b627upstream/0+git20141009.d26b627Jonathan McCrohan2010-11120/+159271 2014-07-23Release 0+git20140611.14bd6c7-1debian/0+git20140611.14bd6c7-1Jonathan McCrohan1-2/+2 2014-07-23New Upstream Snapshot (commit 14bd6c7)Jonathan McCrohan1-2/+3 2014-07-23Imported Upstream version 0+git20140611.14bd6c7upstream/0+git20140611.14bd6c7Jonathan McCrohan7-11/+60 2014-05-13New Upstream Snapshot (commit 1246b27)Jonathan McCrohan1-0/+6 2014-05-13Imported Upstream version 0+git20140512.1246b27upstream/0+git20140512.1246b27Jonathan McCrohan391-301/+3983 2014-04-05Release 0+git20140326.cfc2975-1debian/0+git20140326.cfc2975-1Jonathan McCrohan1-2/+2 2014-04-05d/control: update Homepage (upstream has moved from Gitweb to cgit)Jonathan McCrohan2-1/+2 2014-04-05New Upstream Snapshot (commit cfc2975)Jonathan McCrohan1-0/+6 2014-04-05Imported Upstream version 0+git20140326.cfc2975upstream/0+git20140326.cfc2975Jonathan McCrohan118-656/+877 2014-01-16Release 0+git20140107.1850cf8-1debian/0+git20140107.1850cf8-1Jonathan McCrohan1-2/+2 2014-01-16Update Standards Version to 3.9.5Jonathan McCrohan2-1/+9