cctv
CORE · WIREDCCTV / PTZ cameras: pan, tilt and zoom position with presets and tours, stream and encoder status, enclosure environment, and control-authority arbitration.
Data model
The configuration and state tree. Safety constraints are expressed as YANG must and validated at every boundary.
container camera {
container config { uses device-identity; } // id, location, mounting
container state {
config false;
leaf operational-status { type operational-status; } // online|degraded|offline
}
container ptz {
container config { // commanded pan/tilt/zoom, arbitrated under the control holder
leaf pan-degrees { type decimal64; }
leaf tilt-degrees { type decimal64; }
leaf zoom-percent { type uint8; units "percent"; }
}
container state { config false; } // readback: actual position + move-mode
container presets { list preset { key "preset-id"; } }
container tours { list tour { key "tour-id"; } } // recall/run + state
}
container streams { list stream {
key "stream-id";
leaf uri { type inet:uri; } // out-of-band encoder endpoint, not the video
} }
container control { // joystick-ownership arbitration
leaf control-mode { type control-mode; } // local|remote|maintenance
leaf current-holder { config false; } // last-writer-wins; loser gets lockout-denied
}
}
Notifications & events
Each event is its own typed notification with its own ce-type. Consumers filter by subject before parsing.
Event families:
fault
lockout
mode
ptz
tour
Subject & bindings
# canonical subject (reference CloudEvents binding)
openits.us-tx.txdot.d07.cctv.i35-exit-214.fault-cleared
Schema registry
Every revision is immutable and content-addressed. Cite the exact date in ce-dataschema; there is no latest alias.