[{"data":1,"prerenderedAt":722},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fcamera\u002Fconnections\u002Fcamera-events":146,"docs-\u002Fdocs\u002Fcamera\u002Fconnections\u002Fcamera-events-surround":717},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,80,124],{"title":10,"path":6,"stem":11},"Overview","docs\u002Findex",{"title":13,"path":14,"stem":15,"children":16},"Camera app","\u002Fdocs\u002Fcamera","docs\u002F1.camera\u002Findex",[17,18,22,26,48,52,56,60,64,68,72,76],{"title":10,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"Requirements","\u002Fdocs\u002Fcamera\u002Frequirements","docs\u002F1.camera\u002F01.requirements",{"title":23,"path":24,"stem":25},"Install","\u002Fdocs\u002Fcamera\u002Finstall","docs\u002F1.camera\u002F02.install",{"title":27,"path":28,"stem":29,"children":30},"Connections","\u002Fdocs\u002Fcamera\u002Fconnections","docs\u002F1.camera\u002F03.connections\u002Findex",[31,32,36,40,44],{"title":27,"path":28,"stem":29},{"title":33,"path":34,"stem":35},"Allen-Bradley","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fallen-bradley","docs\u002F1.camera\u002F03.connections\u002F1.allen-bradley",{"title":37,"path":38,"stem":39},"ABB robot","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fabb-robot","docs\u002F1.camera\u002F03.connections\u002F2.abb-robot",{"title":41,"path":42,"stem":43},"Camera events","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fcamera-events","docs\u002F1.camera\u002F03.connections\u002F3.camera-events",{"title":45,"path":46,"stem":47},"Demo and diagnostics","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fdemo-and-diagnostics","docs\u002F1.camera\u002F03.connections\u002F4.demo-and-diagnostics",{"title":49,"path":50,"stem":51},"Tags","\u002Fdocs\u002Fcamera\u002Ftags","docs\u002F1.camera\u002F04.tags",{"title":53,"path":54,"stem":55},"Overlay","\u002Fdocs\u002Fcamera\u002Foverlay","docs\u002F1.camera\u002F05.overlay",{"title":57,"path":58,"stem":59},"History and charts","\u002Fdocs\u002Fcamera\u002Fhistory-and-charts","docs\u002F1.camera\u002F06.history-and-charts",{"title":61,"path":62,"stem":63},"DataBorder","\u002Fdocs\u002Fcamera\u002Fdataborder","docs\u002F1.camera\u002F07.databorder",{"title":65,"path":66,"stem":67},"Recording","\u002Fdocs\u002Fcamera\u002Frecording","docs\u002F1.camera\u002F08.recording",{"title":69,"path":70,"stem":71},"Performance","\u002Fdocs\u002Fcamera\u002Fperformance","docs\u002F1.camera\u002F09.performance",{"title":73,"path":74,"stem":75},"Status and troubleshooting","\u002Fdocs\u002Fcamera\u002Fstatus-and-troubleshooting","docs\u002F1.camera\u002F10.status-and-troubleshooting",{"title":77,"path":78,"stem":79},"Export and import","\u002Fdocs\u002Fcamera\u002Fexport-import","docs\u002F1.camera\u002F11.export-import",{"title":81,"path":82,"stem":83,"children":84},"Decoder","\u002Fdocs\u002Fdecoder","docs\u002F2.decoder\u002Findex",[85,86,89,93,96,100,104,108,112,116,120],{"title":10,"path":82,"stem":83},{"title":23,"path":87,"stem":88},"\u002Fdocs\u002Fdecoder\u002Finstall","docs\u002F2.decoder\u002F01.install",{"title":90,"path":91,"stem":92},"Clips","\u002Fdocs\u002Fdecoder\u002Fopen-clips","docs\u002F2.decoder\u002F02.open-clips",{"title":65,"path":94,"stem":95},"\u002Fdocs\u002Fdecoder\u002Frecord","docs\u002F2.decoder\u002F03.record",{"title":97,"path":98,"stem":99},"Live","\u002Fdocs\u002Fdecoder\u002Flive","docs\u002F2.decoder\u002F04.live",{"title":101,"path":102,"stem":103},"Timeline","\u002Fdocs\u002Fdecoder\u002Ftimeline","docs\u002F2.decoder\u002F05.timeline",{"title":105,"path":106,"stem":107},"Decoded data","\u002Fdocs\u002Fdecoder\u002Fdecoded-data","docs\u002F2.decoder\u002F06.decoded-data",{"title":109,"path":110,"stem":111},"Signal view","\u002Fdocs\u002Fdecoder\u002Fsignal-view","docs\u002F2.decoder\u002F07.signal-view",{"title":113,"path":114,"stem":115},"Extracting clips","\u002Fdocs\u002Fdecoder\u002Fclips","docs\u002F2.decoder\u002F08.clips",{"title":117,"path":118,"stem":119},"Verification","\u002Fdocs\u002Fdecoder\u002Fverify","docs\u002F2.decoder\u002F09.verify",{"title":121,"path":122,"stem":123},"Troubleshooting","\u002Fdocs\u002Fdecoder\u002Ftroubleshooting","docs\u002F2.decoder\u002F10.troubleshooting",{"title":125,"path":126,"stem":127,"children":128,"page":145},"Reference","\u002Fdocs\u002Freference","docs\u002F3.reference",[129,133,137,141],{"title":130,"path":131,"stem":132},"Configuration settings","\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F3.reference\u002F1.configuration",{"title":134,"path":135,"stem":136},"Compatibility","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F3.reference\u002F2.compatibility",{"title":138,"path":139,"stem":140},"Release notes","\u002Fdocs\u002Freference\u002Frelease-notes","docs\u002F3.reference\u002F3.release-notes",{"title":142,"path":143,"stem":144},"Glossary","\u002Fdocs\u002Freference\u002Fglossary","docs\u002F3.reference\u002F4.glossary",false,{"id":147,"title":41,"body":148,"description":710,"extension":711,"meta":712,"navigation":713,"path":42,"seo":714,"source":715,"stem":43,"__hash__":716},"docs\u002Fdocs\u002F1.camera\u002F03.connections\u002F3.camera-events.md",{"type":149,"value":150,"toc":695},"minimark",[151,160,163,166,171,174,265,268,272,283,352,363,367,385,388,391,405,411,414,493,502,506,531,536,539,571,576,580,591,613,618,621,631,635,650,653],[152,153,154,155,159],"p",{},"AXIS Object Analytics and AXIS Video Motion Detection run on the camera itself and decide, frame by frame, whether a person, a vehicle or movement is in the picture. The ",[156,157,158],"strong",{},"camera events"," connection turns those decisions into ordinary RAVidEn tags.",[152,161,162],{},"A detection tag behaves like every other tag. It goes on the overlay, the camera keeps its history, the state charts work on it, and it rides in the DataBorder.",[152,164,165],{},"Both analytics applications ship with the camera and need no license. You set them up in the camera's own interface, not in RAVidEn.",[167,168,170],"h2",{"id":169},"event-topics","Event topics",[152,172,173],{},"Browsing the connection lists the camera's whole event tree. These are the most useful entries.",[175,176,177,190],"table",{},[178,179,180],"thead",{},[181,182,183,187],"tr",{},[184,185,186],"th",{},"Address",[184,188,189],{},"Reports",[191,192,193,205,215,225,235,245,255],"tbody",{},[181,194,195,202],{},[196,197,198],"td",{},[199,200,201],"code",{},"CameraApplicationPlatform\u002F ObjectAnalytics\u002F Device1Scenario1#active",[196,203,204],{},"An Object Analytics scenario: true while an object it cares about is inside its area.",[181,206,207,212],{},[196,208,209],{},[199,210,211],{},"CameraApplicationPlatform\u002F ObjectAnalytics\u002F Device1ScenarioANY#active",[196,213,214],{},"True while any Object Analytics scenario is triggered.",[181,216,217,222],{},[196,218,219],{},[199,220,221],{},"CameraApplicationPlatform\u002F VMD\u002F Camera1Profile1#active",[196,223,224],{},"A Video Motion Detection profile: true while the profile sees movement.",[181,226,227,232],{},[196,228,229],{},[199,230,231],{},"VideoSource\u002F Tampering#tampering",[196,233,234],{},"The camera's tampering alarm.",[181,236,237,242],{},[196,238,239],{},[199,240,241],{},"VideoSource\u002F DayNightVision#day",[196,243,244],{},"Whether the camera is in day mode or has switched to infrared.",[181,246,247,252],{},[196,248,249],{},[199,250,251],{},"Device\u002F IO\u002F Port#state",[196,253,254],{},"A physical input on the camera, for a light curtain or a door switch.",[181,256,257,262],{},[196,258,259],{},[199,260,261],{},"Device\u002F IO\u002F VirtualInput#active",[196,263,264],{},"A virtual input, which anything on the network can set.",[152,266,267],{},"Object Analytics is usually the better choice. It classifies what it sees, so a tag can mean that a person is in the area rather than that something moved.",[167,269,271],{"id":270},"scenario-setup-on-the-camera","Scenario setup on the camera",[152,273,274,275,278,279,282],{},"Open the camera's ",[156,276,277],{},"Apps"," page and start ",[156,280,281],{},"AXIS Object Analytics",". Add a scenario and set it up there.",[175,284,285,295],{},[178,286,287],{},[181,288,289,292],{},[184,290,291],{},"Setting",[184,293,294],{},"Choice",[191,296,297,312,320,336,344],{},[181,298,299,302],{},[196,300,301],{},"Scenario type",[196,303,304,307,308,311],{},[156,305,306],{},"Object in area"," reports whether a person is present. ",[156,309,310],{},"Line crossing"," reports passes through a line, and the other types cover counting and occupancy.",[181,313,314,317],{},[196,315,316],{},"Area",[196,318,319],{},"Draw the area over the part of the picture that matters, for example the operator's side of a cell rather than the whole aisle.",[181,321,322,325],{},[196,323,324],{},"Object types",[196,326,327,328,331,332,335],{},"Tick ",[156,329,330],{},"Human",", ",[156,333,334],{},"Vehicle",", or both. Some camera models offer further classes.",[181,337,338,341],{},[196,339,340],{},"Filters",[196,342,343],{},"Short-lived objects, swaying objects and small objects each have a filter. They set how sensitive the tag is. Tune them here; RAVidEn does not filter the events.",[181,345,346,349],{},[196,347,348],{},"Name",[196,350,351],{},"The scenario name is shown beside the address when you browse, so name it after the place it watches.",[152,353,354,355,358,359,362],{},"A camera takes up to ten scenarios, and each one becomes its own tag. ",[156,356,357],{},"AXIS Video Motion Detection"," is set up the same way and its profiles appear under ",[199,360,361],{},"CameraApplicationPlatform\u002FVMD\u002F",".",[167,364,366],{"id":365},"connection","Connection",[152,368,369,370,372,373,376,377,380,381,384],{},"Open ",[156,371,27],{},", choose ",[156,374,375],{},"Add connection",", and set the source to ",[156,378,379],{},"Camera events (Axis analytics)",". The connection needs no address or credentials. The fields that every source shares are on the ",[382,383,27],"a",{"href":28}," page.",[152,386,387],{},"The poll interval sets how often the latest event value is copied into the tag. The events are local to the camera, so an interval as short as 250 ms costs little.",[167,389,49],{"id":390},"tags",[152,392,369,393,396,397,400,401,404],{},[156,394,395],{},"Tag library"," and choose ",[156,398,399],{},"Browse"," next to the connection. Filtering for ",[199,402,403],{},"CameraApplicationPlatform"," brings the analytics topics together.",[406,407],"shot",{"alt":408,"caption":409,"name":410},"The camera's event tree filtered to the analytics topics, one row per field, each with its scenario name, type and an Add button.","Browsing the analytics topics.","camera-detection-browse",[152,412,413],{},"A scenario declares several fields and each one is a separate tag.",[175,415,416,429],{},[178,417,418],{},[181,419,420,423,426],{},[184,421,422],{},"Field",[184,424,425],{},"Type",[184,427,428],{},"Contents",[191,430,431,444,457,469,481],{},[181,432,433,438,441],{},[196,434,435],{},[199,436,437],{},"#active",[196,439,440],{},"bool",[196,442,443],{},"Whether the scenario is triggered right now. Recommended first tag.",[181,445,446,451,454],{},[196,447,448],{},[199,449,450],{},"#classTypes",[196,452,453],{},"string",[196,455,456],{},"The object classes behind the last trigger, as the camera names them.",[181,458,459,464,466],{},[196,460,461],{},[199,462,463],{},"#objectId",[196,465,453],{},[196,467,468],{},"The camera's identifier for the object that last triggered the scenario.",[181,470,471,476,478],{},[196,472,473],{},[199,474,475],{},"#triggerTime",[196,477,453],{},[196,479,480],{},"When the scenario last triggered.",[181,482,483,488,490],{},[196,484,485],{},[199,486,487],{},"#scenarioType",[196,489,453],{},[196,491,492],{},"The scenario's type, which is fixed by its configuration.",[152,494,495,497,498,501],{},[199,496,437],{}," has a value as soon as the tag is added. The other fields receive a value when the scenario next triggers and read ",[156,499,500],{},"waiting for first event"," until then.",[167,503,505],{"id":504},"state-map","State map",[152,507,508,509,512,513,516,517,520,521,524,525,528,529,362],{},"A detection tag is a bool. Set its ",[156,510,511],{},"Kind"," to ",[156,514,515],{},"State (mapped values)"," and map ",[199,518,519],{},"0"," and ",[199,522,523],{},"1"," to labels such as Clear and Person. ",[156,526,527],{},"Add observed values"," fills both rows once the camera has seen both values. See ",[382,530,49],{"href":50},[406,532],{"alt":533,"caption":534,"name":535},"The tag form for a detection tag: kind set to state, with values 0 and 1 mapped to Clear and Person.","A detection tag with a state map.","camera-detection-tag",[167,537,53],{"id":538},"overlay",[152,540,541,542,544,545,331,548,331,551,520,554,557,558,561,562,565,566,570],{},"A detection is a state tag, so the state elements on the ",[382,543,538],{"href":54}," apply: ",[156,546,547],{},"Current state",[156,549,550],{},"State strip",[156,552,553],{},"State table",[156,555,556],{},"Hourly bars",". The object class is a string and goes on with a ",[156,559,560],{},"Tag value"," element. A ",[156,563,564],{},"visibility rule"," of ",[567,568,569],"em",{},"detection equals 1"," shows it only while something is in the area.",[406,572],{"alt":573,"caption":574,"name":575},"The overlay editor showing a detection panel: the current state, a state strip for people over one for motion, a state table and hourly bars.","A detection panel on the overlay.","camera-detection-overlay",[167,577,579],{"id":578},"detection-and-machine-state","Detection and machine state",[152,581,582,583,586,587,590],{},"A ",[156,584,585],{},"derived state"," combines a detection with a controller tag. Choose ",[156,588,589],{},"Add derived state"," in the tag library and add rules; the first rule that matches wins.",[592,593,594,601,607],"ol",{},[595,596,597,598,362],"li",{},"If the detection tag equals 1, the state is ",[156,599,600],{},"Attended",[595,602,603,604,362],{},"If the machine's state tag equals its down value, the state is ",[156,605,606],{},"Down unattended",[595,608,609,610,362],{},"Everything else falls to the else state, ",[156,611,612],{},"Running",[152,614,615,616,362],{},"A donut over a shift then splits the downtime into attended and unattended. See ",[382,617,49],{"href":50},[167,619,61],{"id":620},"databorder",[152,622,623,624,626,627,630],{},"Add the detection tag as a record on the ",[382,625,61],{"href":62}," page. A bool fits in a ",[156,628,629],{},"bit"," record. Pin the record so that a clip cut from the middle of a recording carries the state from its first frame.",[167,632,634],{"id":633},"limitations","Limitations",[636,637,638,641,644],"ul",{},[595,639,640],{},"The connection reports a scenario's verdict, not the scene. Bounding boxes, object positions and per-object tracks are not part of the camera's event system and do not reach RAVidEn.",[595,642,643],{},"A detection shorter than one overlay redraw may not appear on the video. It is still in the history and in the DataBorder, which follow the poll interval.",[595,645,646,647,362],{},"Some topics are shared by several sources. Every one of the camera's I\u002FO ports reports on the same topic, so an address without a filter reads whichever port fired last. Add a source filter to pick one: ",[199,648,649],{},"Device\u002FIO\u002FPort@port=1#state",[167,651,121],{"id":652},"troubleshooting",[175,654,655,665],{},[178,656,657],{},[181,658,659,662],{},[184,660,661],{},"Symptom",[184,663,664],{},"Check",[191,666,667,679,687],{},[181,668,669,676],{},[196,670,671,673,674],{},[156,672,500],{}," on ",[199,675,437],{},[196,677,678],{},"The analytics application is running on the camera's Apps page.",[181,680,681,684],{},[196,682,683],{},"The tag never leaves its clear state, or flickers",[196,685,686],{},"The scenario's area, object types and short-lived-object filter.",[181,688,689,692],{},[196,690,691],{},"The tag is not polled at all",[196,693,694],{},"Only used tags are polled. Put it on the overlay or in the DataBorder first.",{"title":696,"searchDepth":697,"depth":697,"links":698},"",3,[699,701,702,703,704,705,706,707,708,709],{"id":169,"depth":700,"text":170},2,{"id":270,"depth":700,"text":271},{"id":365,"depth":700,"text":366},{"id":390,"depth":700,"text":49},{"id":504,"depth":700,"text":505},{"id":538,"depth":700,"text":53},{"id":578,"depth":700,"text":579},{"id":620,"depth":700,"text":61},{"id":633,"depth":700,"text":634},{"id":652,"depth":700,"text":121},"Person and motion detection from within the camera.","md",{},true,{"title":41,"description":710},null,"RB8LUD88fL6L-s_Or6p9zURh8ccFy6NRj-0P4SGVDDY",[718,720],{"title":37,"path":38,"stem":39,"description":719,"children":-1},"Connecting to an IRC5 or OmniCore controller over Robot Web Services.",{"title":45,"path":46,"stem":47,"description":721,"children":-1},"Building layouts without a controller, and reading the camera's own health.",1788953752313]