Baseline feature set: Implement remote SIP/RTP screen, speaker, camera, mic (using USB webcam for cam/mic) which automatically accepts calls if the Spindoctor server tells it to (so, have a simple API for call management).
Stretch goal 1: Implement general purpose media casting target. Should disconnect sources when a call is received. Perfect implementation would be pausing and hiding cast while retaining connection. Should not automatically unpause when call concludes.
Stretch goal 2: Implement an API to locally render information sent. Should probably be in the form of a HTML engine, but I'm concerned about performance on targer hardware.
Stretch goal 3: implement the ability to send HDMI-CEC commands to wake up the display when one of the functions is requested.
Speaking of: target hardware is a Pi 4, 4GB. stretch hardware is a Pi 3 1GB. The reasoning is: these can be readily found as pluggable modules for commercial signage displays; and can also be readily connected to a simple TV and webcam for a more common install.
Goal 0 is to allow the "On-screen" / "Transfer to my quarters" function when receiving external calls with video - as badges do not support this.
Stretch Goal 1 is to allow the display enough functionality that it can just be left on all the time while still being useful as something other than a phone.
Stretch Goal 2 is to allow the "corridor wall display" functionality from TNG - e.g. when Riker is navigated to locate Data in Encounter at Farpoint. Realistically could be a function of 1. (have the computer agent render and display), but if the compute module has the power for local rendering, this would allow distribution of workload in a way that would lower cost of entry for any one component - e.g. Spindoctor Server runs on a Pi, Terminal runs on a Pi, building management server runs on a pi - no single power-hungry central node is required.
Stretch Goal 3 is for power efficiency.
Baseline feature set: Implement remote SIP/RTP screen, speaker, camera, mic (using USB webcam for cam/mic) which automatically accepts calls if the Spindoctor server tells it to (so, have a simple API for call management).
Stretch goal 1: Implement general purpose media casting target. Should disconnect sources when a call is received. Perfect implementation would be pausing and hiding cast while retaining connection. Should not automatically unpause when call concludes.
Stretch goal 2: Implement an API to locally render information sent. Should probably be in the form of a HTML engine, but I'm concerned about performance on targer hardware.
Stretch goal 3: implement the ability to send HDMI-CEC commands to wake up the display when one of the functions is requested.
Speaking of: target hardware is a Pi 4, 4GB. stretch hardware is a Pi 3 1GB. The reasoning is: these can be readily found as pluggable modules for commercial signage displays; and can also be readily connected to a simple TV and webcam for a more common install.
Goal 0 is to allow the "On-screen" / "Transfer to my quarters" function when receiving external calls with video - as badges do not support this.
Stretch Goal 1 is to allow the display enough functionality that it can just be left on all the time while still being useful as something other than a phone.
Stretch Goal 2 is to allow the "corridor wall display" functionality from TNG - e.g. when Riker is navigated to locate Data in Encounter at Farpoint. Realistically could be a function of 1. (have the computer agent render and display), but if the compute module has the power for local rendering, this would allow distribution of workload in a way that would lower cost of entry for any one component - e.g. Spindoctor Server runs on a Pi, Terminal runs on a Pi, building management server runs on a pi - no single power-hungry central node is required.
Stretch Goal 3 is for power efficiency.