You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					41 lines
				
				968 B
			
		
		
			
		
	
	
					41 lines
				
				968 B
			| 
											6 years ago
										 | #!/usr/bin/env python3
 | ||
|  | import time
 | ||
|  | import numpy as np
 | ||
|  | import cereal.messaging as messaging
 | ||
|  | from PIL import ImageFont, ImageDraw, Image
 | ||
|  | 
 | ||
|  | font = ImageFont.truetype("arial", size=72)
 | ||
|  | def get_frame(idx):
 | ||
|  |   img = np.zeros((874, 1164, 3), np.uint8)
 | ||
|  |   img[100:400, 100:100+(idx%10)*100] = 255
 | ||
|  | 
 | ||
|  |   # big number
 | ||
|  |   im2 = Image.new("RGB", (200,200))
 | ||
|  |   draw = ImageDraw.Draw(im2)
 | ||
|  |   draw.text((10, 100), "%02d" % idx, font=font)
 | ||
|  |   img[400:600, 400:600] = np.array(im2.getdata()).reshape((200,200,3))
 | ||
|  |   return img.tostring()
 | ||
|  | 
 | ||
|  | if __name__ == "__main__":
 | ||
|  |   from common.realtime import Ratekeeper
 | ||
|  |   rk = Ratekeeper(20)
 | ||
|  | 
 | ||
|  |   pm = messaging.PubMaster(['frame'])
 | ||
|  |   frm = [get_frame(x) for x in range(30)]
 | ||
|  |   idx = 0
 | ||
|  |   while 1:
 | ||
|  |     print("send %d" % idx)
 | ||
|  |     dat = messaging.new_message()
 | ||
|  |     dat.init('frame')
 | ||
|  |     dat.valid = True
 | ||
|  |     dat.frame = {
 | ||
|  |       "frameId": idx,
 | ||
|  |       "image": frm[idx%len(frm)],
 | ||
|  |     }
 | ||
|  |     pm.send('frame', dat)
 | ||
|  | 
 | ||
|  |     idx += 1
 | ||
|  |     rk.keep_time()
 | ||
|  |     #time.sleep(1.0)
 | ||
|  | 
 |