|  |  |  | #!/usr/bin/env python
 | 
					
						
							|  |  |  | import os
 | 
					
						
							|  |  |  | import sys
 | 
					
						
							|  |  |  | import numpy as np
 | 
					
						
							|  |  |  | os.environ['ZMQ'] = '1'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from common.window import Window
 | 
					
						
							|  |  |  | import cereal.messaging as messaging
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # start camerad with 'SEND_ROAD=1 SEND_DRIVER=1 SEND_WIDE_ROAD=1 XMIN=771 XMAX=1156 YMIN=483 YMAX=724 ./camerad'
 | 
					
						
							|  |  |  | # also start bridge
 | 
					
						
							|  |  |  | # then run this "./receive.py <ip>"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if "FULL" in os.environ:
 | 
					
						
							|  |  |  |   SCALE = 2
 | 
					
						
							|  |  |  |   XMIN, XMAX = 0, 1927
 | 
					
						
							|  |  |  |   YMIN, YMAX = 0, 1207
 | 
					
						
							|  |  |  | else:
 | 
					
						
							|  |  |  |   SCALE = 1
 | 
					
						
							|  |  |  |   XMIN = 771
 | 
					
						
							|  |  |  |   XMAX = 1156
 | 
					
						
							|  |  |  |   YMIN = 483
 | 
					
						
							|  |  |  |   YMAX = 724
 | 
					
						
							|  |  |  | H, W = ((YMAX-YMIN+1)//SCALE, (XMAX-XMIN+1)//SCALE)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__':
 | 
					
						
							|  |  |  |   cameras = ['roadCameraState', 'wideRoadCameraState', 'driverCameraState']
 | 
					
						
							|  |  |  |   if "CAM" in os.environ:
 | 
					
						
							|  |  |  |     cam = int(os.environ['CAM'])
 | 
					
						
							|  |  |  |     cameras = cameras[cam:cam+1]
 | 
					
						
							|  |  |  |   sm = messaging.SubMaster(cameras, addr=sys.argv[1])
 | 
					
						
							|  |  |  |   win = Window(W*len(cameras), H)
 | 
					
						
							|  |  |  |   bdat = np.zeros((H, W*len(cameras), 3), dtype=np.uint8)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   while 1:
 | 
					
						
							|  |  |  |     sm.update()
 | 
					
						
							|  |  |  |     for i,k in enumerate(cameras):
 | 
					
						
							|  |  |  |       if sm.updated[k]:
 | 
					
						
							|  |  |  |         #print("update", k)
 | 
					
						
							|  |  |  |         bgr_raw = sm[k].image
 | 
					
						
							|  |  |  |         dat = np.frombuffer(bgr_raw, dtype=np.uint8).reshape(H, W, 3)[:, :, [2,1,0]]
 | 
					
						
							|  |  |  |         bdat[:, W*i:W*(i+1)] = dat
 | 
					
						
							|  |  |  |     win.draw(bdat)
 | 
					
						
							|  |  |  | 
 |