Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.29 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import rospy
  3. from geometry_msgs.msg import Pose2D, Pose
  4. from math import *
  5. import time
  6. import socket
  7. import readchar
  8. import sys
  9. from struct import *
  10. from std_msgs.msg import ByteMultiArray
  11.  
  12.  
  13. class HexaGuide():
  14.    
  15.     def __init__(self):
  16.         self.pose1      = Pose2D()
  17.         self.pose2      = Pose2D()
  18.         self.marker     = Pose2D()
  19.         self.marker2    = Pose2D()
  20.  
  21.         self.IP1        = '192.250.9.9'
  22.         self.IP2        = '192.168.4.1'
  23.         #self.IP2        = '192.155.5.5' #if Lein hex then ovaj IP
  24.         self.Port       = 80
  25.        
  26.         self.dat = [0,0,0]
  27.         self.a = ByteMultiArray(data=self.dat)
  28.        
  29.         #self.array = ByteMultiArray(self.data)
  30.         self.power1     = 0
  31.         self.angle1     = 0
  32.         self.rotation1  = 0
  33.         self.staticTilt = 0
  34.         self.movingTilt = 0
  35.         self.onoff1     = 1
  36.         self.accX       = 0
  37.         self.accY       = 0
  38.         self.sliders1   = 50
  39.         self.sliders2   = 25
  40.         self.sliders3   = 0
  41.         self.sliders4   = 0
  42.         self.sliders5   = 0
  43.         self.sliders6   = 50
  44.         self.sliders7   = 0
  45.         self.sliders8   = 0
  46.         self.sliders9   = 0
  47.         self.duration   = 20
  48.        
  49.         self.power2     = 0
  50.         self.angle2     = 0
  51.         self.rotation2  = 0
  52.         self.onoff2     = 1
  53.         self.switch1    = False
  54.         self.switch2    = False
  55.         self.switch3    = False
  56.         rospy.Subscriber("/pose_node/pose_id1", Pose2D, self.pose_callback1)
  57.         rospy.Subscriber("/pose_node/pose_id2", Pose2D, self.pose_callback2)
  58.         rospy.Subscriber("/pose_node/pose_id15", Pose2D, self.pose_callback15)
  59.         rospy.Subscriber("/pose_node/pose_id4", Pose2D, self.pose_callback4)
  60.         self.pub1 = rospy.Publisher("/algoritam/naredbe1",ByteMultiArray, queue_size=10)
  61.         self.pub2 = rospy.Publisher("/algoritam/naredbe2",ByteMultiArray, queue_size=10)
  62.        
  63.        
  64.     def pose_callback1(self, data):                        
  65.         self.marker.x = data.x
  66.         self.marker.y = data.y
  67.         self.marker.theta = data.theta
  68.  
  69.     def pose_callback2(self, data):                        
  70.         self.pose1 = data
  71.         self.pose1.x = data.x
  72.         self.pose1.y = data.y
  73.         self.pose1.theta = data.theta
  74.  
  75.     def pose_callback15(self, data):
  76.         self.pose2.x = data.x
  77.         self.pose2.y = data.y
  78.         self.pose2.theta = data.theta
  79.  
  80.     def pose_callback4(self, data):
  81.         self.marker2.x = data.x
  82.         self.marker2.y = data.y
  83.         self.marker2.theta = data.theta
  84.                
  85.        
  86.     def run(self):
  87.         s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  88.         print "JA 1"
  89.         s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  90.         print "JA 2"
  91.         s1.connect((self.IP1, self.Port))
  92.         print "JA 3"
  93.         s2.connect((self.IP2, self.Port))
  94.         print "JA 4"
  95.         print rospy.is_shutdown()
  96.         while not(rospy.is_shutdown()):
  97.             print "JA 5"
  98.            
  99.            
  100.             self.dat[0] = 56
  101.             self.dat[1] = 12
  102.             self.dat[2] = 12
  103.             self.a = ByteMultiArray(data=[self.dat[0],self.dat[1],self.dat[2]])
  104.             print self.a
  105.             self.pub1.publish(self.a)
  106.             time.sleep(0.2)
  107.            
  108.         #self.power1 = 0
  109.         #self.power2 = 0
  110.         #self.niz1()
  111.         #self.niz2()
  112.         #s1.send(self.paket1)
  113.         #s2.send(self.paket2)
  114.         #time.sleep(0.2)
  115.            
  116.        
  117.        
  118.        
  119.     def niz1(self):
  120.  
  121.         self.paket1=pack('cccbbbbbbbbbbbbbbbbbBB','P','K','T', self.power1,(self.angle1/2), self.rotation1, self.staticTilt, self.movingTilt, self.onoff1, self.accX, self.accY, self.sliders1, self.sliders2, self.sliders3, self.sliders4, self.sliders5, self.sliders6, self.sliders7, self.sliders8, self.sliders9, (self.duration/256), (self.duration%256))
  122.  
  123.     def niz2(self):
  124.  
  125.         self.paket2=pack('cccbbbbbbbbbbbbbbbbbBB','P','K','T', self.power2,(self.angle2/2), self.rotation2, self.staticTilt, self.movingTilt, self.onoff2, self.accX, self.accY, self.sliders1, self.sliders2, self.sliders3, self.sliders4, self.sliders5, self.sliders6, self.sliders7, self.sliders8, self.sliders9, (self.duration/256), (self.duration%256))
  126.    
  127.    
  128.     def nula(self):
  129.         s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  130.         s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  131.         s1.connect((self.IP1, self.Port))
  132.         s2.connect((self.IP2, self.Port))
  133.         self.power1     = 0
  134.         self.angle1     = 0
  135.         self.power2     = 0
  136.         self.angle2     = 0
  137.         self.rotation1  = 0
  138.         self.rotation1  = 0
  139.         self.niz1()
  140.         self.niz2()
  141.         s1.send(self.paket1)
  142.         s2.send(self.paket2)
  143.         time.sleep(1)
  144.        
  145. if __name__ == '__main__':
  146.    
  147.     try:
  148.         print "prvi"
  149.         rospy.init_node('Control', anonymous = True)
  150.         Hex = HexaGuide()
  151.         # Hex.nula()
  152.         Hex.run()
  153.         rospy.spin()
  154.         print "drugi"
  155.     except KeyboardInterrupt:
  156.         print "cetvrti"
  157.     except rospy.ROSInterruptException:
  158.         print "treci"
  159.         Hex.nula()
  160.         s1.close()
  161.         s2.close()
  162.         sys.exit()
  163.         print "cetvrti"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement