Publisher:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from std_msgs.msg import Bool
def run():
rospy.init_node('tempHum')
pub = rospy.Publisher("temp", Bool,queue_size=1)
rate = rospy.Rate(1)
while not rospy.is_shutdown():
temp = 30
#hum = 55
#date = json.dumps({"temp": temp,"hum":hum})
if temp > 40:
too_hight_temp = True
else:
too_hight_temp = False
pub.publish(too_hight_temp)
rate.sleep()
if __name__ == '__main__':
try:
run()
except:
pass
Subscriber:主要是用了wait_for_message()
接口
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from std_msgs.msg import Bool
if __name__ == '__main__':
rospy.init_node('temp_subscriber')
rate = rospy.Rate(0.1)
while not rospy.is_shutdown():
temp_msg = rospy.wait_for_message("/temp", Bool,timeout=None)
if temp_msg.data == True:
print("starting mission")
elif temp_msg.data == False:
print("nomal")
else:
pass
rate.sleep()