[{"data":1,"prerenderedAt":353},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fdecoder\u002Fsignal-view":146,"docs-\u002Fdocs\u002Fdecoder\u002Fsignal-view-surround":348},[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":109,"body":148,"description":341,"extension":342,"meta":343,"navigation":344,"path":110,"seo":345,"source":346,"stem":111,"__hash__":347},"docs\u002Fdocs\u002F2.decoder\u002F07.signal-view.md",{"type":149,"value":150,"toc":333},"minimark",[151,160,167,172,178,268,275,279,282,322,326],[152,153,154,155,159],"p",{},"The signal view is a protocol analyzer for the DataBorder. Switch to it with the ",[156,157,158],"strong",{},"signal"," toggle in the timeline header.",[152,161,162,163,166],{},"During a live session the signal view streams continuously and holds the last five minutes. For stored clips, it re-analyzes the selected clips on demand and shows a progress line with a ",[156,164,165],{},"stop"," button. MP4 and MOV clips are analyzed inside the application. Other containers need ffmpeg.",[168,169,171],"h2",{"id":170},"reading-it-from-top-to-bottom","Reading it from top to bottom",[173,174],"shot",{"alt":175,"caption":176,"name":177},"The signal view over ten seconds of a clip: the frames, updates, records per update, payload, corrections, margin and worst-codeword lanes.","The signal view over ten seconds of a clean clip.","decoder-signal",[179,180,181,194],"table",{},[182,183,184],"thead",{},[185,186,187,191],"tr",{},[188,189,190],"th",{},"Lane",[188,192,193],{},"Meaning",[195,196,197,208,218,228,238,248,258],"tbody",{},[185,198,199,205],{},[200,201,202],"td",{},[156,203,204],{},"frames",[200,206,207],{},"Every frame is marked as decoded, unrecoverable, or dropped in transport, and keyframes are ticked. A healthy stream is one unbroken bar of decoded frames.",[185,209,210,215],{},[200,211,212],{},[156,213,214],{},"updates",[200,216,217],{},"There is one stripe per DataBorder update. A stripe is wider when the camera held the update for longer than usual. Sequence gaps are marked in red.",[185,219,220,225],{},[200,221,222],{},[156,223,224],{},"records per update",[200,226,227],{},"This shows how many records each update carried. The tall bars are full snapshots, which arrive every couple of seconds. The low bars in between are deltas.",[185,229,230,235],{},[200,231,232],{},[156,233,234],{},"payload",[200,236,237],{},"The update's bytes are laid out from top to bottom and colored by layer, so you can watch the carousel cycle. Hover over a layer in the legend to isolate it.",[185,239,240,245],{},[200,241,242],{},[156,243,244],{},"corrections and failures",[200,246,247],{},"This shows the symbols that the error correction had to fix, by position around the ring: top edge, sides, and bottom edge. Blank means clean. A failed codeword is shown as a red column.",[185,249,250,255],{},[200,251,252],{},[156,253,254],{},"margin",[200,256,257],{},"This is the contrast between light and dark blocks. Above 60 is clean. Below 40, the decoder falls back to a slower threshold method.",[185,259,260,265],{},[200,261,262],{},[156,263,264],{},"worst codeword",[200,266,267],{},"This is the number of symbols corrected in the worst codeword of each update. Six is the limit. At seven, the codeword fails.",[152,269,270,271,274],{},"The ",[156,272,273],{},"help"," button next to the toggle explains each lane in place, with a sketch.",[168,276,278],{"id":277},"patterns","Patterns",[152,280,281],{},"The findings list under the chart adds up the totals and points to the likely cause. The common patterns:",[283,284,285,296,302,308,316],"ul",{},[286,287,288,291,292,295],"li",{},[156,289,290],{},"Falling margin with rising corrections"," means that a recorder or a stream profile is compressing too hard. Raise the bitrate on the profile the recorder uses, or record a different profile. See ",[293,294,65],"a",{"href":66},".",[286,297,298,301],{},[156,299,300],{},"Corrections concentrated in one stretch of the ring",", which the findings call out as a hot spot, usually mean that something is drawn over the ring in that place. This is typically the camera's clock or a text overlay, or a fixed element in a screen recording. Move it off the border.",[286,303,304,307],{},[156,305,306],{},"Dropped frames, and sequence gaps the findings attribute to transport",", point to the network path rather than the picture.",[286,309,310,313,314,295],{},[156,311,312],{},"Updates held longer than usual, and sequence gaps attributed to the camera",", mean the camera skipped a DataBorder refresh. This is load on the camera rather than a fault in the stream. See ",[293,315,69],{"href":70},[286,317,318,321],{},[156,319,320],{},"A clean signal with values that look wrong"," is not a signal problem. Check the tag configuration on the camera.",[168,323,325],{"id":324},"the-frame-inspector","The frame inspector",[152,327,328,329,332],{},"Click on the signal view to place the cursor. The ",[156,330,331],{},"at cursor"," panel then becomes a frame inspector for that frame. It shows whether the DataBorder decoded and by which method, the margin, the corrections per codeword, the update's flags and fragments, the payload as a grid of bits, and a hex dump colored by layer. A frame whose codeword failed shows no bytes at all, because the decoder never displays data it could not validate.",{"title":334,"searchDepth":335,"depth":335,"links":336},"",3,[337,339,340],{"id":170,"depth":338,"text":171},2,{"id":277,"depth":338,"text":278},{"id":324,"depth":338,"text":325},"Checking whether the camera, network or recorder is damaging the DataBorder.","md",{},true,{"title":109,"description":341},null,"53NXeR5UBvp0PMOQnsQ53SVMkYYtZXsJ0z-pJ7PRsvY",[349,351],{"title":105,"path":106,"stem":107,"description":350,"children":-1},"Everything the DataBorder carried besides the values.",{"title":113,"path":114,"stem":115,"description":352,"children":-1},"Extracting clips and exporting CSV.",1788953751924]