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