def publish_vision_info(client, topic, info): #Use same device name as in vision_commands.py mid1 = master.publish_cmd(client, topic, SetAttrMessage('Vision', 'class_name', repr(info[0])), qos=0) mid2 = master.publish_cmd( client, topic, SetAttrMessage('Vision', 'distance_angle', repr((info[1], info[2]))), qos=0 ) #do we care about quality of service here??? probably not,want speed return mid1, mid2
def addVisionDevices(client, topic, qos=0): return master.publish_cmd(client, topic, AddDeviceMessage('Vision', "VisualFeedback()"), delay=1, qos=qos)
def publish_all(client, config_topics_to_publish): for topic in config_topics_to_publish: if topic == "IR": sensor = "IR_control" for property_name in items_to_publish[sensor]: prop = getattr(publishable_names_dict["IR_control"], property_name) master.publish_cmd( client, topic, SetAttrMessage(sensor, property_name, repr(prop))) elif topic == "actuators": for pub, property_names in items_to_publish.items(): if ("out" in pub): for property_name in property_names: val = getattr(publishable_names_dict[pub], property_name) master.publish_cmd( client, topic, SetAttrMessage(pub, property_name, repr(val))) elif topic == "odometry": sensor = "Odometer" for property_name in items_to_publish[sensor]: prop = getattr(publishable_names_dict[sensor], property_name) master.publish_cmd( client, topic, SetAttrMessage(sensor, property_name, repr(prop)))
def addSensorDevices(client,topic): #Use same names as in sensors_names_dict #Add remote controller master.publish_cmd(client,topic, AddDeviceMessage("IR_control", "remoteControl.InfraredSensor()"),1) master.publish_cmd(client,topic, SetAttrMessage("IR_control", "mode","IR-REMOTE"),1) master.publish_cmd(client,"data_collect",AddDeviceMessage("data_collector","DataCollector()"),1) print("added data")
def addOdometryDevices(client,topic,qos): master.publish_cmd(client, topic,AddDeviceMessage('Odometer', "Odometry()"),1,qos=qos)
def addActuatorDevices(client,topic): #Use same names as in actuators_and_names_dict #Motors master.publish_cmd(client, topic,AddDeviceMessage('LargeMotor(outA)', "ev3.LargeMotor()"),1) master.publish_cmd(client, topic,SetAttrMessage('LargeMotor(outA)', "address","outA"),1) master.publish_cmd(client, topic,AddDeviceMessage('LargeMotor(outB)', "ev3.LargeMotor()"),1) master.publish_cmd(client, topic,SetAttrMessage('LargeMotor(outB)', "address","outB"),1) master.publish_cmd(client, topic,AddDeviceMessage('LargeMotor(outD)', "ev3.LargeMotor()"),1) master.publish_cmd(client, topic,SetAttrMessage('LargeMotor(outD)', "address","outD"),1) master.publish_cmd(client, topic,AddDeviceMessage('MediumMotor(outC)', "ev3.MediumMotor()"),1) master.publish_cmd(client, topic,SetAttrMessage('MediumMotor(outC)', "address","outD"),1)