#!/usr/bin/env python
import sys
import httplib
import signal
import socket
import time
from pymodbus.constants import Endian
from pymodbus.constants import Defaults
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from pymodbus.transaction import ModbusRtuFramer
DEBUG = 1
client = ModbusClient(method='rtu', port='/dev/ttyUSB0', stopbits=1, bytesize=8, timeout=0.55, baudrate=9600, parity='N')
client.connect()
global M1Exp, M1Imp, REGVALUE
client.write_register(0x0d8, 2, unit=1)
time.sleep(5)
checkregs = client.read_input_registers(0x048, 4, unit=1)
checkholds = client.read_holding_registers(0x0D8, 2, unit=1)
decoder1 = BinaryPayloadDecoder.fromRegisters(checkregs.registers, byteorder=Endian.Big, wordorder=Endian.Big)
decoder2 = BinaryPayloadDecoder.fromRegisters(checkholds.registers, byteorder=Endian.Big, wordorder=Endian.Big)
REGVALUE = decoder2.decode_32bit_float()
M1Imp = decoder1.decode_32bit_float()
M1Exp = decoder1.decode_32bit_float()
print "REGVALUE: %.2f M1Exp: %.2f M1Imp: %.2f" % (REGVALUE, M1Exp, M1Imp)