Cspy sends the grid information to the :ref:`frontend<frontend_usage>` (projector), which will cast an adjusted interface onto the table accordingly and send information about the machine state to the :ref:`infoscreen<infoscreen>` (TV) to display metadata.
cspy continuously sends information to the frontend in a given interval (usually of 500 ms, this can be set in the :ref:`cspy settings<cspy_settings>`). It will keep you updated about this with a message like this:
CityScopy grid sent at: 2023-07-13 12:11:58.270595 via 127.0.0.1:5001
When also printing scan_results within create_data_json, you'll see the full output of a grid message, which is a 1:1 representation of the grid with each cell's ID and rotation:
[[5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 1], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [4, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [0, 3], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [3, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [3, 2], [5, 0], [5, 0], [3, 1], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [4, 0], [1, 0], [3, 3], [4, 0], [3, 0], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [4, 0], [1, 0], [3, 3], [4, 0], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [3, 1], [5, 0], [4, 0], [0, 1], [3, 1], [4, 0], [4, 0], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 1], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [0, 1], [5, 0], [5, 0], [5, 0], [5, 0], [1, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [0, 3], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [1, 0], [5, 0], [5, 0], [5, 0], [3, 0], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [1, 2], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [0, 3], [3, 1], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [3, 1], [4, 0], [3, 1], [5, 0], [3, 3], [5, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [3, 0], [3, 3], [4, 0], [3, 1], [5, 0], [1, 0], [5, 0], [5, 0], [5, 0], [1, 2], [5, 0], [5, 0], [5, 0], [1, 0], [5, 0], [3, 3], [0, 3], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [1, 0], [5, 0], [3, 3], [0, 1], [5, 0], [2, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [0, 1], [5, 0], [5, 0], [1, 1], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [5, 0], [5, 0], [3, 3], [5, 0], [1, 2], [3, 1], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [5, 0], [4, 0], [5, 0], [4, 0], [4, 0], [0, 0], [4, 0], [4, 0], [4, 0], [4, 0], [4, 0], [1, 0], [5, 0], [5, 0], [5, 0], [3, 3], [1, 0], [5, 0], [5, 0], [5, 0]]
Similarly, the program will keep you updated about slider changes:
slider val slider0 : 0.58 sent 2023-07-13 12:19:44.906430 via 127.0.0.1:5001
The slider position (darkest pixels along a horizontal line) are transported as a float between the end points 0 and 1 and can be :ref:`processed further in the frontend<frontend_slider_setup>`.