public override void DoBeforeNextExecute()
        {
            CheckScriptTimer();
            var lapse = bk.timer.GetLapse();

            if (lapse > duration)
            {
                for (int led = 0; led < 6; led++)
                {
                    if (!bk.stateleds[led + 12])
                    {
                        continue;
                    }
                    UpdateBufferLed(led, !bk.stateleds[led]);
                }
                bk.timer = ReStartTimer();
            }
            if (bk.stateleds[18])
            {
                stream.Write(buffer, 0, buffer.Length);
            }
            bk.stateleds[18] = false;

            if (cmd == 'W')
            {
                if (SF == null)
                {
                    SF = new ScriptWarthog(this);
                }
                SF.Warthog();
            }
        }
 public override void Stop()
 {
     SF = null;
     SetAllLeds(false);
     stream.Close();
     buffer    = null;
     HidDevice = null;
     loader    = null;
 }