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.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							979 B
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							979 B
						
					
					
				#!/usr/bin/env python3
 | 
						|
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(['roadCameraState'])
 | 
						|
  frm = [get_frame(x) for x in range(30)]
 | 
						|
  idx = 0
 | 
						|
  while 1:
 | 
						|
    print("send %d" % idx)
 | 
						|
    dat = messaging.new_message('roadCameraState')
 | 
						|
    dat.valid = True
 | 
						|
    dat.frame = {
 | 
						|
      "frameId": idx,
 | 
						|
      "image": frm[idx % len(frm)],
 | 
						|
    }
 | 
						|
    pm.send('roadCameraState', dat)
 | 
						|
 | 
						|
    idx += 1
 | 
						|
    rk.keep_time()
 | 
						|
    #time.sleep(1.0)
 | 
						|
 |