#!/usr/bin/env python import os import sys import numpy as np os.environ['ZMQ'] = '1' from common.window import Window import cereal.messaging as messaging # start camerad with 'SEND_ROAD=1 SEND_DRIVER=1 SEND_WIDE_ROAD=1 XMIN=771 XMAX=1156 YMIN=483 YMAX=724 ./camerad' # also start bridge # then run this "./receive.py " if "FULL" in os.environ: SCALE = 2 XMIN, XMAX = 0, 1927 YMIN, YMAX = 0, 1207 else: SCALE = 1 XMIN = 771 XMAX = 1156 YMIN = 483 YMAX = 724 H, W = ((YMAX-YMIN+1)//SCALE, (XMAX-XMIN+1)//SCALE) if __name__ == '__main__': cameras = ['roadCameraState', 'wideRoadCameraState', 'driverCameraState'] if "CAM" in os.environ: cam = int(os.environ['CAM']) cameras = cameras[cam:cam+1] sm = messaging.SubMaster(cameras, addr=sys.argv[1]) win = Window(W*len(cameras), H) bdat = np.zeros((H, W*len(cameras), 3), dtype=np.uint8) while 1: sm.update() for i,k in enumerate(cameras): if sm.updated[k]: #print("update", k) bgr_raw = sm[k].image dat = np.frombuffer(bgr_raw, dtype=np.uint8).reshape(H, W, 3)[:, :, [2,1,0]] bdat[:, W*i:W*(i+1)] = dat win.draw(bdat)