#!/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 ( [ ' 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)