def main():

    global receiver
    receiver = canvas.init_receiver()

    global sender
    sender = canvas.init_sender()

    canvas.add_id(receiver, id_filter)

    # Main loop, modelled after control node's loop
    while 1:

        # See if any messages have been sent
        msg_name, data = canvas.recv(receiver)
        if msg_name == "set_hover_eng_angle":
            set_hover_eng_angle(data)
        elif msg_name == "set_hover_eng_power":
            set_hover_eng_power(data)
        elif msg_name == "get_hover_eng_angle":
            canvas.send(sender, "get_hover_eng_angle_rep", get_hover_eng_angle())
        elif msg_name == "get_hover_eng_power":
            canvas.send(sender, "get_hover_eng_power_rep", get_hover_eng_power())

        time.sleep(1)
Пример #2
0
def start_pod():
    canvas.print_out("start hover engine L")
    canvas.send(sender, ml.messages['start_l']['id'], 0)  # start engine

    canvas.print_out("get hover engine L status")
    canvas.send(sender, ml.messages['get_engine_status_l']['id'],
                "")  # get engine status L
def main():

    global receiver
    receiver = canvas.init_receiver()

    global sender
    sender = canvas.init_sender()

    canvas.add_id(receiver, id_filter)

    # Main loop, modelled after control node's loop
    while 1:

        # See if any messages have been sent
        msg_name, data = canvas.recv(receiver)
        if (msg_name == 'set_hover_eng_angle'):
            set_hover_eng_angle(data)
        elif (msg_name == 'set_hover_eng_power'):
            set_hover_eng_power(data)
        elif (msg_name == 'get_hover_eng_angle'):
            canvas.send(sender, 'get_hover_eng_angle_rep',
                        get_hover_eng_angle())
        elif (msg_name == 'get_hover_eng_power'):
            canvas.send(sender, 'get_hover_eng_power_rep',
                        get_hover_eng_power())

        time.sleep(1)
Пример #4
0
def move_pod(data):
    canvas.print_out("tilt hover engine at angle calculated from target speed")
    canvas.send(sender, ml.messages['tilt_l']['id'],
                math.asin(float(data) / 20) *
                5)  # title engine at calculated angle

    canvas.print_out("get hover engine L status")
    canvas.send(sender, ml.messages['get_engine_status_l']['id'],
                "")  # get engine status L
Пример #5
0
def main():
	
	#init canvas sender and receiver
	receiver = canvas.init_receiver()
	sender = canvas.init_sender()
	time.sleep(0.5) #sleep to allow for canvas server startup. horrible hack that will go away soon

	#add message id filters on receiver
	canvas.add_id(receiver, receive_message_ids)

	#remove message id filters on receiver (add and remove only take lists for now..)
	canvas.rm_id(receiver, ["7"])

	#you have 2 ways of making CAN messages:
	#either just make 2 strings
	message_id = "100"
	message_data = "Ping from node 2"
	#or a canvas "message"
	message = canvas.msg("100", "Hi it's node 2 again")

	while 1:
		#print to stdout. python's standard print can interfere with supervisord's
		#output and logging functionality in strange ways. 
		#please use this instead.
		canvas.print_out( "This is node 2" )

		#send message on the CAN bus
		canvas.send(sender, message_id, message_data)
		canvas.send_msg(sender, message)	    	

		#you can change a canvas message like this
		message.id = "101"
		message.data="Node 1 should not see this now"

		#receive message from CAN bus (only returns messages that this node has subscribed to)
		#this call will block untill a message is received
		msg_id, msg_data = canvas.recv(receiver)

		#print message to stdout
		canvas.print_out("Node 2 recieved: %s %s" % (msg_id, msg_data))

		#non-blocking receive call (only returns messages that this node has subscribed to) 
		#will return "no_id", "no_message" if no message was received
		msg_id, msg_data = canvas.recv_noblock(receiver)		
		canvas.print_out("Node 2 recieved: %s %s" % (msg_id, msg_data))

		#sleep node for 5 second
		time.sleep(5)
def main():
	
	global receiver 
	receiver = canvas.init_receiver()

	global sender 
	sender = canvas.init_sender()
	
	canvas.add_id(receiver, id_filter)

	# Main loop, modelled after control node's loop
	while 1:
	
		# See if any messages have been sent
		msg_name, data = canvas.recv(receiver)
		if (msg_name == 'set_eddy_brake_angle'):
			set_eddy_brake_angle(data)
		elif (msg_name == 'set_eddy_brake_power'):
			set_eddy_brake_power(data)
		elif (msg_name == 'get_eddy_brake_angle'):
			canvas.send( sender, 'get_eddy_brake_angle_rep', get_eddy_brake_angle() )
		elif (msg_name == 'get_eddy_brake_power'):
			canvas.send( sender, 'get_eddy_brake_power_rep', get_eddy_brake_power() )
		elif (msg_name == 'get_eddy_brake_temp'):
			canvas.send( sender, 'get_eddy_brake_temp_rep', get_eddy_brake_temp() )
			
		time.sleep(1)
Пример #7
0
def main():
	
	receiver = canvas.init_receiver()
	sender = canvas.init_sender()
	time.sleep(0.5) #sleep to allow for canvas server startup. horrible hack that will go away soon

	canvas.add_id(receiver, id_filter)

	message_id = "asdf"
	message_data = "Ping from node 1"

	while 1:
		#print to stdout. python's standard print can interfere with supervisord's
		#output and logging functionality in strange ways. 
		#please use this instead.
		canvas.print_out( "This is node 1" )
		canvas.send(sender, message_id, message_data)
	    	
		msg_id, data = canvas.recv(receiver)

		canvas.print_out("Node 1 recieved: %s" % data)
		time.sleep(5)
def main():
	
	global receiver 
	receiver = canvas.init_receiver()

	global sender 
	sender = canvas.init_sender()
	
	canvas.add_id(receiver, id_filter)

	# Main loop, modelled after control node's loop
	while 1:
	
		# See if any messages have been sent
		msg_name, data = canvas.recv(receiver)
		if (msg_name == 'set_brake_force'):
			set_brake_force(data)
		elif ('get_brake_force'):
			canvas.send( sender, 'get_brake_force_rep', get_brake_force() )
		elif ('is_brake_engaged'):
			canvas.send( sender, 'is_brake_engaged_rep', is_brake_engaged() )
			
		time.sleep(1)
def main():

    global receiver
    receiver = canvas.init_receiver()

    global sender
    sender = canvas.init_sender()

    canvas.add_id(receiver, id_filter)

    # Main loop, modelled after control node's loop
    while 1:

        # See if any messages have been sent
        msg_name, data = canvas.recv(receiver)
        if (msg_name == 'set_brake_force'):
            set_brake_force(data)
        elif ('get_brake_force'):
            canvas.send(sender, 'get_brake_force_rep', get_brake_force())
        elif ('is_brake_engaged'):
            canvas.send(sender, 'is_brake_engaged_rep', is_brake_engaged())

        time.sleep(1)
def stop_pod():
	canvas.print_out("tilt hover engine to stop position")		
	canvas.send(sender, ml.messages['tilt_l']['id'], 0) # tilt engine back to stop position
	
	canvas.print_out("stop hover engine")		
	canvas.send(sender, ml.messages['stop_l']['id'], "") # stop engine L
	
	canvas.print_out("get hover engine l status")
	canvas.send(sender, ml.messages['get_engine_status_l']['id'], "") # get engine status L	
Пример #11
0
def stop_pod():
    canvas.print_out("tilt hover engine to stop position")
    canvas.send(sender, ml.messages['tilt_l']['id'],
                0)  # tilt engine back to stop position

    canvas.print_out("stop hover engine")
    canvas.send(sender, ml.messages['stop_l']['id'], "")  # stop engine L

    canvas.print_out("get hover engine l status")
    canvas.send(sender, ml.messages['get_engine_status_l']['id'],
                "")  # get engine status L
def start_pod():
	canvas.print_out("start hover engine L")		
	canvas.send(sender, ml.messages['start_l']['id'], 0) # start engine

	canvas.print_out("get hover engine L status")
	canvas.send(sender, ml.messages['get_engine_status_l']['id'], "") # get engine status L
def move_pod(data):
	canvas.print_out("tilt hover engine at angle calculated from target speed")		
	canvas.send(sender, ml.messages['tilt_l']['id'], math.asin(float(data)/20)*5) # title engine at calculated angle

	canvas.print_out("get hover engine L status")
	canvas.send(sender, ml.messages['get_engine_status_l']['id'], "") # get engine status L	
def alert_ground_station(emer, loc):
	canvas.print_out("Sending message to ground station")		
	canvas.send(sender, 'emer_1', "Emergency code: {0} \nLocation: {1}".format(emer, loc))