def main(argv):
    import_manager = Import_Manager()
    thread_manager = Thread_Manager()
    usb_manager = USB_Manager()

    usb_manager.index()

    arguments = Arguments("settings.json", argv, positionals=[{
        "name": "rf_sensor_class",
        "help": "Sensor class to use for the RF sensor",
        "type": "class",
        "module": "zigbee.RF_Sensor",
        "required": True
    }])

    rf_sensor_class = arguments.get_positional_value("rf_sensor_class")
    rf_sensor_type = import_manager.load_class(rf_sensor_class,
                                               relative_module="zigbee")
    rf_sensor = rf_sensor_type(arguments, thread_manager, get_location,
                               receive_packet, location_valid, usb_manager=usb_manager)

    arguments.check_help()

    try:
        rf_sensor.activate()

        print("RF sensor has joined the network.")
        while True:
            if rf_sensor.id == 0:
                # The ground station does not need to start in order to receive 
                # measurements, so do not bother giving this possibility.
                time.sleep(1)
            else:
                # Wait for the user to determine when to perform measurements 
                # and when to stop. Add a newline so that the messages do not 
                # mess up other output.
                raw_input("Press Enter to start measurements...\n")
                rf_sensor.start()

                raw_input("Press Enter to stop measurements...\n")
                rf_sensor.stop()
    except:
        traceback.print_exc()
        thread_manager.destroy()
        usb_manager.clear()
def main(argv):
    import_manager = Import_Manager()
    thread_manager = Thread_Manager()
    usb_manager = USB_Manager()

    usb_manager.index()

    arguments = Arguments("settings.json",
                          argv,
                          positionals=[{
                              "name": "rf_sensor_class",
                              "help": "Sensor class to use for the RF sensor",
                              "type": "class",
                              "module": "zigbee.RF_Sensor",
                              "required": True
                          }])

    rf_sensor_class = arguments.get_positional_value("rf_sensor_class")
    rf_sensor_type = import_manager.load_class(rf_sensor_class,
                                               relative_module="zigbee")
    rf_sensor = rf_sensor_type(arguments,
                               thread_manager,
                               get_location,
                               receive_packet,
                               location_valid,
                               usb_manager=usb_manager)

    arguments.check_help()

    try:
        rf_sensor.activate()

        print("RF sensor has joined the network.")
        while True:
            if rf_sensor.id == 0:
                # The ground station does not need to start in order to receive
                # measurements, so do not bother giving this possibility.
                time.sleep(1)
            else:
                # Wait for the user to determine when to perform measurements
                # and when to stop. Add a newline so that the messages do not
                # mess up other output.
                raw_input("Press Enter to start measurements...\n")
                rf_sensor.start()

                raw_input("Press Enter to stop measurements...\n")
                rf_sensor.stop()
    except:
        traceback.print_exc()
        thread_manager.destroy()
        usb_manager.clear()
示例#3
0
def main(argv):
    arguments = Arguments("settings.json", argv)
    settings = arguments.get_settings("xbee_configurator")
    arguments.check_help()

    usb_manager = USB_Manager()

    for sensor_id in range(0, settings.get("number_of_sensors") + 1):
        if sensor_id == 0:
            raw_input("Connect the ground station XBee sensor and press Enter...")
        else:
            raw_input("Connect XBee sensor {} and press Enter...".format(sensor_id))

        usb_manager.index()
        parameters = {
            "ID": settings.get("pan_id"),
            "NI": str(sensor_id),
            "PM": 0,
            "PL": 0
        }
        xbee_configurator = XBee_Configurator(arguments, usb_manager)

        # Show the current parameters.
        for key in parameters.iterkeys():
            value = xbee_configurator.get(key)
            if value != None:
                print("{}[Sensor {}] {} is {}.{}".format(COLORS["green"], sensor_id, key, value, COLORS["end"]))
            else:
                print("{}[Sensor {}] {} is unknown.{}".format(COLORS["red"], sensor_id, key, COLORS["end"]))

        # Set the new parameters.
        for key, value in parameters.iteritems():
            if xbee_configurator.set(key, value):
                print("{}[Sensor {}] {} set to {}.{}".format(COLORS["green"], sensor_id, key, value, COLORS["end"]))
            else:
                print("{}[Sensor {}] {} not set to {}.{}".format(COLORS["red"], sensor_id, key, value, COLORS["end"]))

        # Write the changes to the sensor.
        if xbee_configurator.write():
            print("{}[Sensor {}] Changes written to sensor.{}".format(COLORS["green"], sensor_id, COLORS["end"]))
        else:
            print("{}[Sensor {}] Changes not written to sensor.{}".format(COLORS["red"], sensor_id, COLORS["end"]))

        usb_manager.clear()