Пример #1
0
def _test_main(port_id, cur_addr, new_date, wait_for_read, verbose=0):

    rsp = 0

    chn = dlt645.Channel(port_id=port_id,
                         tmo_cnt=10,
                         wait_for_read=wait_for_read)

    if not chn.open():
        sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
        sys.exit()

    if (cur_addr == []):
        rsp = read_meter_address(chn)
    else:
        rsp = is_meter_online(chn, cur_addr)

    if (rsp):
        cur_addr = chn.rx_addr
        rsp = enter_factory_mode(chn, cur_addr, verbose=verbose)

    if (rsp):
        rsp = change_meter_date(chn, cur_addr, new_date, verbose=verbose)

    #if (rsp):
    #    rsp = exit_factory_mode(chn, cur_addr, verbose=verbose)

    if (rsp):
        rsp = read_date(chn, cur_addr, verbose=verbose)

    sys.stdout.write('\n\n')
    chn.close()
Пример #2
0
def _test_main(port_id, addr, wait_for_read=0.5, verbose=0):

    rsp = 0

    chn = dlt645.Channel(port_id=port_id,
                         tmo_cnt=10,
                         wait_for_read=wait_for_read)

    if not chn.open():
        sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
        sys.exit()

    if (addr == []):
        rsp = read_meter_address(chn, verbose)
    else:
        #chn.print_hex_list(addr)
        rsp = is_meter_online(chn, addr, verbose)

    if rsp:
        addr = chn.rx_addr

    if rsp:
        rsp = read_date(chn, addr, verbose)

    if rsp:
        rsp = read_time(chn, addr, verbose)

    if rsp:
        rsp = read_voltage(chn, addr, verbose)

    if rsp:
        rsp = read_current(chn, addr, verbose)

    if rsp:
        rsp = read_power(chn, addr, verbose)

    if rsp:
        rsp = read_temperature(chn, addr, verbose)

    if rsp:
        rsp = read_battery_voltage(chn, addr, verbose)

    if rsp:
        rsp = read_last_outage_timestamp(chn, addr, 1, verbose)

    if rsp:
        rsp = read_preset_billing_time(chn, addr, verbose)

    m = 0
    for n in range(0, 5):
        if rsp:
            rsp = read_energy(chn, addr, m, n, verbose)

    sys.stdout.write('\n\n')

    chn.close()
Пример #3
0
def _test_main(port_id, addr, wait_for_read, verbose=0):

    rsp = 0

    chn = dlt645.Channel(port_id=port_id,
                         tmo_cnt=10,
                         wait_for_read=wait_for_read)

    if not chn.open():
        sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
        sys.exit()

    if (addr == []):
        rsp = read_meter_address(chn, verbose=verbose)
    else:
        rsp = is_meter_online(chn, addr, verbose=verbose)

    sys.stdout.write('\n\n')
    chn.close()
Пример #4
0
def _test_main(port_id, cur_addr, new_time, wait_for_read, verbose=0):

    rsp = 0

    chn = dlt645.Channel(port_id=port_id,
                         tmo_cnt=10,
                         wait_for_read=wait_for_read)

    if not chn.open():
        sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
        sys.exit()

    if (cur_addr == []):
        rsp = read_meter_address(chn)
    else:
        rsp = is_meter_online(chn, cur_addr)

    if (rsp):
        cur_addr = chn.rx_addr
        rsp = enter_factory_mode(chn, cur_addr, verbose=verbose)

    if (rsp):
        if new_time == []:
            t0 = time.time() + 1  # add 1s for the delay time
            sys.stdout.write(
                "\n---> No new time specified. Use system time.\n")
            new_time = str_to_bcd_time(
                time.strftime('%H%M%S', time.localtime(t0)))
        rsp = change_meter_time(chn, cur_addr, new_time, verbose=verbose)

    #if (rsp):
    #    rsp = exit_factory_mode(chn, cur_addr, verbose=verbose)

    if (rsp):
        rsp = read_time(chn, cur_addr, verbose=verbose)

    sys.stdout.write('\n\n')
    chn.close()
Пример #5
0
def _test_main(port_id, addr, wait_for_read=0.5, verbose=0):
    
    rsp = 0

    chn=dlt645.Channel(port_id = port_id, tmo_cnt = 10, wait_for_read = wait_for_read)

    if not chn.open() :
        sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
        sys.exit()

    rsp = read_meter_address(chn, verbose)


    addr = chn.rx_addr

    read_date(chn, addr, verbose)
    read_time(chn, addr, verbose)    
    
    read_voltage(chn, addr, verbose)
    read_current(chn, addr, verbose)
    read_power(chn, addr, verbose)    
    # read_temperature(chn, addr, verbose)
    read_battery_voltage(chn, addr, verbose)
    
    read_last_outage_timestamp(chn, addr, 1, verbose)
    # read_preset_billing_time(chn, addr, verbose)

    # read_power_energy(chn, addr, verbose)
    
    for m in range(0,2):
        for n in [0,2,4]:
            read_energy(chn, addr, m, n, verbose)

    sys.stdout.write('\n\n')

    chn.close()
Пример #6
0
#!/usr/bin/env python3

import dlt645
import sys
from test_dlt645 import *

verbose = 1

port_id = '/dev/ttyUSB0'

chn = dlt645.Channel(port_id=port_id, tmo_cnt=10, wait_for_read=0.5)

# open the channel
if not chn.open():
    sys.stdout.write('Fail to open %s...exit script!\n\n\n' % port_id)
    sys.exit()

# read meter address
rsp = read_meter_address(chn)

if rsp:
    addr = chn.rx_addr
    rsp = rtcc_write_trim_enable(chn, addr, 0x1, verbose)