A Granite 10 example program using CAN bus to query an ECU for the legislated PID values once a second. CANPortOpen(), CANWrite(), and CANRead() are used configure the CAN port, request each PID and store the requested values in CRBasic Variables. This example program can be modified to read other manufacturer specific PIDs.