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.
		
		
		
		
		
			
		
			
				
					
					
						
							39 lines
						
					
					
						
							953 B
						
					
					
				
			
		
		
	
	
							39 lines
						
					
					
						
							953 B
						
					
					
				| #!/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('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)
 | |
| 
 | |
| 
 |