#! /usr/bin/env python3 # import sys, time, select if ( len(sys.argv) == 3 ): read_field_description = sys.argv[1] write_field_description = sys.argv[2] sleep_time = 1.0 elif ( len(sys.argv) == 4 ): read_field_description = sys.argv[1] write_field_description = sys.argv[2] sleep_time = float( sys.argv[3] ) else: print ( "" ) print ( "Usage: test_rw read_field write_field [sleep_time]" ) print ( "" ) sys.exit(0) # Add the Mp modules directory to the Python module load path. sys.path[:0] = [ "/opt/mx/lib/mp" ] import Mp database_name = "/opt/mx/etc/mxmotor.dat" mx_database = Mp.setup_database( database_name ) #==== read_name_list = read_field_description.split( "." ) read_record_name = read_name_list[0] read_record = mx_database.get_record( read_record_name ) read_field_name = read_name_list[1] #==== write_name_list = write_field_description.split( "." ) write_record_name = write_name_list[0] write_record = mx_database.get_record( write_record_name ) write_field_name = write_name_list[1] #==== while (1): print( read_record.read_field( read_field_name ) ) time.sleep( sleep_time ) if ( select.select( [sys.stdin,],[],[],0.0 )[0] ): value_to_write = sys.stdin.readline().rstrip() print( "writing '%s' to '%s.%s'" \ % ( value_to_write, write_record_name, write_field_name ) ) try: write_record.write_field( write_field_name, value_to_write ) except: pass