<?xml version="1.0" encoding="UTF-8"?><!--- Copyright (c) 2024 MBARI- MBARI Proprietary Information. Confidential. All Rights Reserved- Unauthorized copying or distribution of this file via any medium is strictly- prohibited.-- WARNING - This file contains information whose export is restricted by the- Export Administration Act of 1979 (Title 50, U.S.C., App. 2401 et seq.), as- amended. Violations of these export laws are subject to severe civil and/or- criminal penalties.--><DefineBehaviorxmlns="Tethys"xmlns:Control="Tethys/Control"xmlns:BehaviorScripts="Tethys/BehaviorScripts"xmlns:Units="Tethys/Units"xmlns:Universal="Tethys/Universal"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="Tethys http://okeanids.mbari.org/tethys/Xml/Tethys.xsd Tethys/Control http://okeanids.mbari.org/tethys/Xml/Control.xsd Tethys/BehaviorScripts ./BehaviorScripts.xsd Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"Name="BoxCarFilter"Language="Lua"><Description>Givenaninputvalueandanwidthvalue,providesaboxcarfilterofthe
inputvalues.
</Description><DefineSettingName="inputSet"><BehaviorScripts:BoxCarFilter.input/><Description>Thevaluetobefiltered
</Description><Units:none/><DefaultValue>NaN</DefaultValue></DefineSetting><DefineSettingName="widthSet"><BehaviorScripts:BoxCarFilter.width/><Description>Width(#samples)inthefilter
</Description><Units:count/><DefaultValue>10</DefaultValue></DefineSetting><Construct><Description>Definefunctionsforuseinthebehavior
</Description><Script><![CDATA[ function BoxCar( buf, n ) local sum = 0 for i=1,n do if (buf[i] == nil) then return nil end sum = sum + buf[i] end return sum / n end function AddValue( buf, value, pos, n ) pos = pos + 1 if( pos > n ) then pos = 1 end buf[pos]=value return pos end return "Constructed BoxCarFilter", "IMPORTANT" ]]></Script></Construct><Initialize><Description>Initializeglobalvariables
</Description><Script><![CDATA[ buffer={} position = 0 ]]></Script></Initialize><Run><OutputArg><BehaviorScripts:BoxCarFilter.output/><Description>Resultofthefilteringoperation.Notwrittenuntilthebufferis
full
</Description><Units:none/></OutputArg><Script><![CDATA[ position = AddValue(buffer,inputSet,position,widthSet) local bc = BoxCar(buffer,widthSet) return bc ]]></Script></Run></DefineBehavior>