#!/usr/bin/env python

import sys, select, time
from modlib import *

SERVER=sys.argv[1]                     # IP server Moxa (10.0.0.243)
COMANDO=sys.argv[2]                    # READ-DI-00, READ-DI-01, RESET-DI-00, RESET-DI-01, PULSE-DO-00

try:

   cn = TCPMasterConnection(SERVER)

   if COMANDO == "RESET-DI-00":
      # Avvia Contatore DI-00
      req = WriteSingleCoilRequest(address=256, value=0XFF00)
      tr = cn.createTransaction(req)
      res = tr.execute()
      # Azzera Contatore DI-00
      req = WriteSingleCoilRequest(address=272, value=0XFF00)
      tr.setRequest(req)
      res = tr.execute()
      print "0",

   if COMANDO == "RESET-DI-01":
      # Avvia Contatore DI-00
      req = WriteSingleCoilRequest(address=257, value=0XFF00)
      tr = cn.createTransaction(req)
      res = tr.execute()
      # Azzera Contatore DI-00
      req = WriteSingleCoilRequest(address=273, value=0XFF00)
      tr.setRequest(req)
      res = tr.execute()
      print "0",

   if COMANDO == "READ-DI-00":
      # Read Contatore ID0
      req = ReadInputRegistersRequest(address=16, count=2)
      tr = cn.createTransaction(req)
      res = tr.execute()
      print res.registers[0] * 256 * 256 + res.registers[1],

   if COMANDO == "READ-DI-01":
      # Read Contatore ID0
      req = ReadInputRegistersRequest(address=18, count=2)
      tr = cn.createTransaction(req)
      res = tr.execute()
      print res.registers[0] * 256 * 256 + res.registers[1],

   if COMANDO == "PULSE-DO-00":
      # Avvia impulso su DO-00
      req = WriteSingleCoilRequest(address=16, value=0XFF00)
      tr = cn.createTransaction(req)
      res = tr.execute()
      print "0",

   cn.close

except:

   print "-1",
