diff options
author | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2010-08-02 15:53:38 +0200 |
---|---|---|
committer | Graeme Geldenhuys <graeme@mastermaths.co.za> | 2010-08-02 15:53:38 +0200 |
commit | 1bb17dd1014dfa085ce63480966344e6cd0418fc (patch) | |
tree | 2d9fa7da1636356a710687ee95be642ab407e2cd /examples/apps | |
parent | 6e874c60c647acb0b78ee259deef0d90f0de5ad2 (diff) | |
download | fpGUI-1bb17dd1014dfa085ce63480966344e6cd0418fc.tar.xz |
Debug Server: New sample application that works with FPC's dbugintf unit.
A nice application that displays debug messages sent via applications.
Very handy for debugging CGI applications too.
Diffstat (limited to 'examples/apps')
16 files changed, 1065 insertions, 0 deletions
diff --git a/examples/apps/debugserver/extrafpc.cfg b/examples/apps/debugserver/extrafpc.cfg new file mode 100644 index 00000000..bf32f456 --- /dev/null +++ b/examples/apps/debugserver/extrafpc.cfg @@ -0,0 +1,6 @@ +-FUunits +-Fu../../../lib/$fpctarget +-Fi. +-Xs +-XX +-CX diff --git a/examples/apps/debugserver/fpgDebugServer.lpi b/examples/apps/debugserver/fpgDebugServer.lpi new file mode 100644 index 00000000..9dff3598 --- /dev/null +++ b/examples/apps/debugserver/fpgDebugServer.lpi @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<CONFIG> + <ProjectOptions> + <Version Value="8"/> + <General> + <Flags> + <SaveOnlyProjectUnits Value="True"/> + <MainUnitHasCreateFormStatements Value="False"/> + <MainUnitHasTitleStatement Value="False"/> + <UseDefaultCompilerOptions Value="True"/> + </Flags> + <SessionStorage Value="InIDEConfig"/> + <MainUnit Value="0"/> + <TargetFileExt Value=""/> + <UseAppBundle Value="False"/> + <ResourceType Value="res"/> + </General> + <VersionInfo> + <Language Value=""/> + <CharSet Value=""/> + <StringTable Comments="" CompanyName="" FileDescription="" FileVersion="" InternalName="" LegalCopyright="" LegalTrademarks="" OriginalFilename="" ProductName="" ProductVersion=""/> + </VersionInfo> + <PublishOptions> + <Version Value="2"/> + <IgnoreBinaries Value="False"/> + <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> + <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> + </local> + </RunParams> + <RequiredPackages Count="1"> + <Item1> + <PackageName Value="fpgui_toolkit"/> + </Item1> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="fpgDebugServer.lpr"/> + <IsPartOfProject Value="True"/> + <UnitName Value="fpgDebugServer"/> + </Unit0> + <Unit1> + <Filename Value="frm_main.pas"/> + <IsPartOfProject Value="True"/> + <UnitName Value="frm_main"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="9"/> + <Target> + <Filename Value="fpgDebugServer"/> + </Target> + <SearchPaths> + <UnitOutputDirectory Value="units/$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Parsing> + <SyntaxOptions> + <AllowLabel Value="False"/> + <CPPInline Value="False"/> + </SyntaxOptions> + </Parsing> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + <Other> + <CompilerMessages> + <UseMsgFile Value="True"/> + </CompilerMessages> + <CompilerPath Value="$(CompPath)"/> + </Other> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/examples/apps/debugserver/fpgDebugServer.lpr b/examples/apps/debugserver/fpgDebugServer.lpr new file mode 100644 index 00000000..eaf9492b --- /dev/null +++ b/examples/apps/debugserver/fpgDebugServer.lpr @@ -0,0 +1,30 @@ +program fpgDebugServer; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Classes + ,fpg_main, frm_main + ; + +procedure MainProc; +var + frm: TMainForm; +begin + fpgApplication.Initialize; + frm := TMainForm.Create(nil); + try + frm.Show; + fpgApplication.Run; + finally + frm.Free; + end; +end; + +begin + MainProc; +end. + diff --git a/examples/apps/debugserver/frm_main.pas b/examples/apps/debugserver/frm_main.pas new file mode 100644 index 00000000..e0da08a7 --- /dev/null +++ b/examples/apps/debugserver/frm_main.pas @@ -0,0 +1,467 @@ +{ + fpGUI - Free Pascal GUI Toolkit + + Copyright (C) 2006 - 2010 See the file AUTHORS.txt, included in this + distribution, for details of the copyright. + + See the file COPYING.modifiedLGPL, included in this distribution, + for details about redistributing fpGUI. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + Description: + This is the server part to a standard FPC unit - dbugintf. This unit + offers a simple API to send messages to a debug server (using + SimpleIPC), modeled after the GExperts GDebug tool for Delphi, with + some minor enhancements. This is a great way to debug CGI apps on a + server as well. + + NOTE: you would normally wrap the SendXXX methods with {$ifdef debug} so + the code can be excluded from a final released product (without debug + information). But this is obviously for you do decide. + + Typical usage is as follows: + + uses + dbugintf, sysutils; + + procedure BackupFile(FN : String); + var + BFN: String; + begin + SendMethodEnter('BackupFile'); + BFN := FN + '.bak'; + SendDebug(Format('backup file "%s" exists, deleting',[BFN])); + SendDebug(Format('Backing up "%s" to "%s"',[FN,BFN])); + SendMethodExit('BackupFile'); + end; + + procedure SaveToFile(FN : String); + begin + SendMethodEnter('SaveToFile'); + BackupFile(FN); + SendDebug('Saving to file '+FN); + SendMethodExit('SaveToFile'); + end; + + + Available SendXXX methods from the dbugintf unit are: + + procedure SendBoolean(const Identifier: string; const Value: Boolean); + procedure SendDateTime(const Identifier: string; const Value: TDateTime); + procedure SendInteger(const Identifier: string; const Value: Integer; HexNotation: Boolean = False); + procedure SendPointer(const Identifier: string; const Value: Pointer); + procedure SendDebugEx(const Msg: string; MType: TDebugLevel); + procedure SendDebug(const Msg: string); + procedure SendMethodEnter(const MethodName: string); + procedure SendMethodExit(const MethodName: string); + procedure SendSeparator; + procedure SendDebugFmt(const Msg: string; const Args: array of const); + procedure SendDebugFmtEx(const Msg: string; const Args: array of const; MType: TDebugLevel); + +} +unit frm_main; + +{$mode objfpc}{$H+} + +interface + +uses + SysUtils + ,Classes + ,fpg_base + ,fpg_main + ,fpg_form + ,fpg_button + ,fpg_panel + ,fpg_menu + ,fpg_basegrid + ,fpg_grid + ,simpleipc + ,dbugmsg + ; + +type + TMainForm = class(TfpgForm) + private + {@VFD_HEAD_BEGIN: MainForm} + MainMenu: TfpgMenuBar; + Bevel1: TfpgBevel; + grdMessages: TfpgStringGrid; + mnuFile: TfpgPopupMenu; + mnuEdit: TfpgPopupMenu; + mnuHelp: TfpgPopupMenu; + btnQuit: TfpgButton; + Bevel2: TfpgBevel; + btnPause: TfpgButton; + btnStart: TfpgButton; + btnClear: TfpgButton; + {@VFD_HEAD_END: MainForm} + FIPCSrv: TSimpleIPCServer; + FPaused: Boolean; + FAddAtBottom: Boolean; + FDiscarded: Integer; + FShowOnMessage: Boolean; + procedure StartServer; + procedure StopServer; + procedure CheckMessages(Sender: TObject); + procedure CheckDebugMessages; + procedure ReadDebugMessage; + procedure ShowDebugMessage(const AMsg: TDebugmessage); + procedure ShowMessageWindow; + procedure miFileQuit(Sender: TObject); + procedure miHelpAboutFPGui(Sender: TObject); + procedure miHelpProductInformation(Sender: TObject); + procedure btnClearClicked(Sender: TObject); + procedure btnPauseClicked(Sender: TObject); + procedure btnStartClicked(Sender: TObject); + procedure GridDrawCell(Sender: TObject; const ARow, ACol: Integer; const ARect: TfpgRect; const AFlags: TfpgGridDrawState; var ADefaultDrawing: boolean); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure AfterCreate; override; + end; + +{@VFD_NEWFORM_DECL} + +implementation + +uses + dateutils + ,fpg_dialogs + ; + + +{$I images.inc} +{$I state_images.inc} + +{@VFD_NEWFORM_IMPL} + +procedure TMainForm.btnClearClicked(Sender: TObject); +begin + grdMessages.RowCount := 0; +end; + +procedure TMainForm.btnPauseClicked(Sender: TObject); +begin + FPaused := not FPaused; +end; + +procedure TMainForm.btnStartClicked(Sender: TObject); +begin + if Assigned(FIPCSrv) then + Exit; + StartServer; +end; + +procedure TMainForm.GridDrawCell(Sender: TObject; const ARow, ACol: Integer; + const ARect: TfpgRect; const AFlags: TfpgGridDrawState; var ADefaultDrawing: boolean); +var + img: TfpgImage; + i: integer; + dx: integer; +begin + if ACol = 0 then + begin + ADefaultDrawing := False; + try + i := StrToInt(grdMessages.Cells[ACol, ARow]); + case i of + -1: img := fpgImages.GetImage('dbs.state.stop'); + 0: img := fpgImages.GetImage('dbs.state.info'); + 1: img := fpgImages.GetImage('dbs.state.warning'); + 2: img := fpgImages.GetImage('dbs.state.error'); + 3: img := fpgImages.GetImage('dbs.state.identify'); + end; + dx := (grdMessages.ColumnWidth[ACol] - 16) div 2; + grdMessages.Canvas.DrawImage(ARect.Left + dx, ARect.Top {+ y}, img); + except + on E: Exception do + begin +// writeln('Cell text = ' + grdMessages.Cells[ACol, ARow]); + end; + end; + end; +end; + +procedure TMainForm.StartServer; +begin + FIPCSrv := TSimpleIPCServer.Create(nil); + FIPCSrv.ServerID := DebugServerID; + FIPCSrv.Global := True; + FIPCSrv.Active := True; + FIPCSrv.StartServer; + fpgApplication.OnIdle := @CheckMessages; +// ITMessages.Enabled:=True; +end; + +procedure TMainForm.StopServer; +begin + fpgApplication.OnIdle := nil; +// ITMessages.Enabled := False; + FreeAndNil(FIPCSrv); +end; + +procedure TMainForm.CheckMessages(Sender: TObject); +begin + CheckDebugMessages; +end; + +procedure TMainForm.CheckDebugMessages; +begin + while FIPCSrv.PeekMessage(1, True) do + ReadDebugMessage; +end; + +procedure TMainForm.ReadDebugMessage; +var + Msg: TDebugMessage; +begin + FIPCSrv.MsgData.Seek(0, soFromBeginning); + ReadDebugMessageFromStream(FIPCSrv.MsgData, MSg); + if not FPaused then + ShowDebugMessage(Msg) + else + Inc(FDiscarded); +end; + +procedure TMainForm.ShowDebugMessage(const AMsg: TDebugmessage); +var + r: integer; +begin + grdMessages.BeginUpdate; + try + grdMessages.RowCount := grdMessages.RowCount + 1; + r := grdMessages.RowCount-1; + //if FAddAtBottom then + // grdMessages.Items.Add(LI) + //else + // grdMessages.Items.InsertItem(LI, 0); + grdMessages.Cells[0, r] := IntToStr(AMsg.MsgType); + grdMessages.Cells[1, r] := FormatDateTime('HH:mm:ss', AMsg.MsgTimeStamp); + grdMessages.Cells[2, r] := AMsg.Msg; + grdMessages.FocusCol := 0; + grdMessages.FocusRow := grdMessages.RowCount-1; + finally + grdMessages.EndUpdate; + end; + if FShowOnMessage then + ShowMessageWindow; +end; + +procedure TMainForm.ShowMessageWindow; +begin + if not Visible then + Show; +end; + +procedure TMainForm.miFileQuit(Sender: TObject); +begin + Close; +end; + +procedure TMainForm.miHelpAboutFPGui(Sender: TObject); +begin + TfpgMessageDialog.AboutFPGui; +end; + +procedure TMainForm.miHelpProductInformation(Sender: TObject); +begin + TfpgMessageDialog.Information('Product Information', WindowTitle + LineEnding + 'Written by Graeme Geldenhuys - 2010'); +end; + +constructor TMainForm.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FPaused := False; + FAddAtBottom := False; + FShowOnMessage := False; + StartServer; + + fpgImages.AddMaskedBMP('dbs.clean', @DBS_clean, sizeof(DBS_clean), 15, 0); + fpgImages.AddMaskedBMP('dbs.stop', @DBS_stop, sizeof(DBS_stop), 0, 0); + fpgImages.AddMaskedBMP('dbs.pause', @DBS_pause, sizeof(DBS_pause), 0, 0); + fpgImages.AddMaskedBMP('dbs.run', @DBS_run, sizeof(DBS_run), 0, 0); + + fpgImages.AddMaskedBMP('dbs.state.info', @DBS_state_info, sizeof(DBS_state_info), 0, 0); + fpgImages.AddMaskedBMP('dbs.state.warning', @DBS_state_warning, sizeof(DBS_state_warning), 0, 0); + fpgImages.AddMaskedBMP('dbs.state.error', @DBS_state_error, sizeof(DBS_state_error), 0, 0); + fpgImages.AddMaskedBMP('dbs.state.identify', @DBS_state_lightbulb, sizeof(DBS_state_lightbulb), 0, 0); + fpgImages.AddMaskedBMP('dbs.state.stop', @DBS_state_lightbulb_off, sizeof(DBS_state_lightbulb_off), 0, 0); +end; + +destructor TMainForm.Destroy; +begin + StopServer; + inherited Destroy; +end; + +procedure TMainForm.AfterCreate; +begin + {%region 'Auto-generated GUI code' -fold} + {@VFD_BODY_BEGIN: MainForm} + Name := 'MainForm'; + SetPosition(353, 245, 486, 313); + WindowTitle := 'fpGUI''s Debug Server'; + Hint := ''; + ShowHint := True; + + MainMenu := TfpgMenuBar.Create(self); + with MainMenu do + begin + Name := 'MainMenu'; + SetPosition(0, 0, 486, 26); + Anchors := [anLeft,anRight,anTop]; + end; + + Bevel1 := TfpgBevel.Create(self); + with Bevel1 do + begin + Name := 'Bevel1'; + SetPosition(0, 26, 486, 31); + Anchors := [anLeft,anRight,anTop]; + Hint := ''; + Style := bsLowered; + Shape := bsBottomLine; + end; + + grdMessages := TfpgStringGrid.Create(self); + with grdMessages do + begin + Name := 'grdMessages'; + SetPosition(4, 63, 478, 246); + Anchors := [anLeft,anRight,anTop,anBottom]; + AddColumn('Type', 50, taLeftJustify); + AddColumn('Time', 75, taCenter); + AddColumn('Message', 330, taLeftJustify); + FontDesc := '#Grid'; + HeaderFontDesc := '#GridHeader'; + Hint := ''; + RowCount := 0; + RowSelect := True; + ShowGrid := False; + TabOrder := 2; + Options := [go_SmoothScroll]; + OnDrawCell := @GridDrawCell; + end; + + mnuFile := TfpgPopupMenu.Create(self); + with mnuFile do + begin + Name := 'mnuFile'; + SetPosition(260, 100, 120, 24); + AddMenuItem('Quit', '', @miFileQuit); + end; + + mnuEdit := TfpgPopupMenu.Create(self); + with mnuEdit do + begin + Name := 'mnuEdit'; + SetPosition(260, 126, 120, 24); + AddMenuItem('Cut', '', nil).Enabled := False; + AddMenuItem('Copy', '', nil).Enabled := False; + AddMenuItem('Paste', '', nil).Enabled := False; + AddMenuItem('-', '', nil); + AddMenuItem('Preferences...', '', nil).Enabled := False; + end; + + mnuHelp := TfpgPopupMenu.Create(self); + with mnuHelp do + begin + Name := 'mnuHelp'; + SetPosition(260, 152, 120, 24); + AddMenuItem('About fpGUI...', '', @miHelpAboutFPGui); + AddMenuItem('Product Information...', '', @miHelpProductInformation); + end; + + btnQuit := TfpgButton.Create(Bevel1); + with btnQuit do + begin + Name := 'btnQuit'; + SetPosition(4, 2, 25, 25); + Text := ''; + Flat := True; + FontDesc := '#Label1'; + Hint := ''; + ImageMargin := -1; + ImageName := 'stdimg.quit'; + ImageSpacing := 0; + TabOrder := 0; + Focusable := False; + OnClick := @miFileQuit; + end; + + Bevel2 := TfpgBevel.Create(Bevel1); + with Bevel2 do + begin + Name := 'Bevel2'; + SetPosition(34, 2, 8, 25); + Hint := ''; + Style := bsLowered; + Shape := bsLeftLine; + end; + + btnPause := TfpgButton.Create(Bevel1); + with btnPause do + begin + Name := 'btnPause'; + SetPosition(43, 2, 25, 25); + Text := ''; + AllowAllUp := True; + Flat := True; + FontDesc := '#Label1'; + GroupIndex := 1; + Hint := 'pause server'; + ImageMargin := -1; + ImageName := 'dbs.pause'; + TabOrder := 2; + Focusable := False; + OnClick :=@btnPauseClicked; + end; + + btnStart := TfpgButton.Create(Bevel1); + with btnStart do + begin + Name := 'btnStart'; + SetPosition(70, 2, 25, 25); + Text := ''; + Flat := True; + FontDesc := '#Label1'; + Hint := 'start server'; + ImageMargin := -1; + ImageName := 'dbs.run'; + TabOrder := 2; + Focusable := False; + OnClick := @btnStartClicked; + Enabled := False; + end; + + btnClear := TfpgButton.Create(Bevel1); + with btnClear do + begin + Name := 'btnClear'; + SetPosition(97, 2, 25, 25); + Text := ''; + Flat := True; + FontDesc := '#Label1'; + Hint := 'clear listview'; + ImageMargin := -1; + ImageName := 'dbs.clean'; + TabOrder := 2; + Focusable := False; + OnClick :=@btnClearClicked; + end; + + {@VFD_BODY_END: MainForm} + {%endregion} + + // Hook up the menus to the MenuBar + MainMenu.AddMenuItem('File', nil).SubMenu := mnuFile; + MainMenu.AddMenuItem('Edit', nil).SubMenu := mnuEdit; + MainMenu.AddMenuItem('Help', nil).SubMenu := mnuHelp; +end; + + +end. diff --git a/examples/apps/debugserver/images.inc b/examples/apps/debugserver/images.inc new file mode 100644 index 00000000..166155c9 --- /dev/null +++ b/examples/apps/debugserver/images.inc @@ -0,0 +1,208 @@ + +Const + DBS_clean : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,224, 17,243, 18,130,164, 19,130,165, 97, 87,195,222, + 18,242,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,236, 10, + 248, 29,125,169, 80,193,210, 91,211,225, 52,177,199, 17,139,164, 86, + 93,191,235, 11,247,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255, 58,110,181, 58,177, + 198, 95,216,231, 38,202,223, 78,212,229,109,217,231, 53,177,198, 25, + 127,168,217, 21,240,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,188, 37,229, 34,150,174,108,218,232, 16,197, + 220, 3,194,218, 3,194,218, 21,198,220, 91,215,231, 87,199,214, 19, + 135,165,192, 34,231,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 44,118,176, 94,207,221, 70,218,237, 24,208,231, 17,203, + 227, 7,196,220, 3,194,218, 3,194,218, 76,211,228, 88,205,220, 15, + 136,163,227, 15,244,255, 0,255,255, 0,255,255, 0,255,229, 14,245, + 24,143,168,139,237,251, 60,229,252, 55,228,251, 47,222,246, 35,215, + 238, 20,205,229, 4,195,219, 3,194,218, 86,214,230, 54,179,199, 87, + 94,192,255, 0,255,255, 0,255,255, 0,255,160, 47,218, 55,169,194, + 138,239,253, 95,234,253, 97,235,253, 82,233,253, 60,230,253, 42,219, + 243, 24,208,231, 16,198,220, 73,210,228,103,212,226, 23,129,167,255, + 0,255,255, 0,255,248, 4,252, 40, 30,176, 22, 65,174,132,234,251, + 107,236,253,132,239,253,109,236,253, 82,233,253, 68,229,251,101,227, + 243,119,221,235, 74,192,207, 38,151,178, 21,128,165,255, 0,255,160, + 52,218, 20,130,166, 49,159,189, 40, 74,187, 29, 56,184, 97,216,246, + 99,234,253,108,235,253,125,238,253,136,234,248, 73,186,206, 13,139, + 162, 92, 91,194,191, 35,230,253, 1,254,255, 0,255,165, 49,220, 10, + 136,161, 79,200,216,104,220,236, 51,109,200, 13, 27,171, 98,177,215, + 114,220,234, 73,183,206, 18,139,165, 97, 89,195,228, 15,245,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,126, 51,194, 1, + 135,156, 65,189,205,119,222,235, 30,102,178, 27, 48,170, 46,118,177, + 136, 65,209,234, 11,247,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,253, 1,254,106, 43,178, 12, 75,133, 11,118,178, 1, + 136,161, 51,173,190, 41,152,181,194, 33,231,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,144, 32,197, 14, 78,139, 15,122,188, 16,125,193, 14, 78,138, 49, + 107,173, 0,139,156,214, 22,239,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 18, 69, + 132, 12,114,178, 16,125,193, 10,107,169, 37, 63,142,253, 1,254,125, + 71,205,236, 10,248,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255, 26, 66,136, 10,105, + 166, 11,109,171, 10, 71,128,187, 19,219,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,196, 17,224, 37, 64,143, 28, 66, + 137,184, 20,217,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_run : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255, 4,115, 58, 33,130, 79, 99,130, + 114,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255, 4,115, 58,122,207,164, 44,140, 90, 61,118, + 89,174,174,174,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 4,115, 58,130,216,172,118,214,166, 60,157,106, 39,116, + 76,172,174,173,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 9,119, 63,131,219,174, 31,198,113,114,222,167, 75,178,127, 23,116, + 69,168,173,170,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 4,115, 58, + 131,220,175, 17,195,105, 26,204,115,105,223,163, 90,194,141, 19,118, + 67,158,167,163,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 4,115, 58,169,220,193, + 16,189,101, 17,193,103, 19,194,105, 89,211,149,103,201,152, 22,124, + 71,136,156,146,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255, 4,115, 58,169,220,193, 13,179, 94, + 14,182, 96, 14,182, 96, 13,180, 95, 71,196,132,112,202,156, 29,130, + 77,103,140,121,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255, 4,115, 58,169,220,193, 12,170, 88, 18,174, 94, + 21,175, 96, 22,173, 97, 19,170, 93, 58,182,119,117,199,157, 40,137, + 87, 78,131,103,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255, 4,115, 58,169,220,193, 46,173,107, 43,173,106, 39,171,104, + 34,169,100, 28,165, 95, 65,178,120,120,198,159, 41,136, 88,103,140, + 121,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 4, + 115, 58,169,220,193, 54,173,112, 50,172,109, 45,170,106, 40,168,102, + 88,188,137,120,197,157, 31,128, 78,131,154,142,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 4,115, 58,169, + 220,193, 62,177,118, 58,175,115, 54,174,112,111,197,152,113,191,151, + 24,123, 73,166,176,171,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255, 4,115, 58,169,220,193, 69, + 180,123, 71,180,124,130,204,166,103,182,140, 23,119, 69,193,197,195, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255, 4,115, 58,165,218,191, 87,187,135,144, + 210,176, 91,171,130, 35,119, 76,212,213,212,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255, 4,115, 58,169,220,193,155,213,183, 76,159,115, 61, + 125, 92,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255, 4,115, 58,164,217,190, 61,147,102, 95,136,115,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 4,115, + 58, 45,136, 89,133,156,144,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_pause : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,152,112, 80,164,101, + 52,164,101, 52,152,112, 80,255, 0,255,255, 0,255,152,112, 80,164, + 101, 52,164,101, 52,152,112, 80,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,159,104, 62,201,156,118,205,165, + 133,159,104, 62,255, 0,255,255, 0,255,159,104, 62,201,156,118,205, + 165,133,159,104, 62,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,163,101, 53,215,172,136,225,197,173,163,101, + 53,255, 0,255,255, 0,255,163,101, 53,215,172,136,225,197,173,163, + 101, 53,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,164,101, 52,216,169,129,230,204,181,164,101, 52,255, 0, + 255,255, 0,255,164,101, 52,216,169,129,230,204,181,164,101, 52,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 164,101, 52,215,167,127,230,204,181,164,101, 52,255, 0,255,255, 0, + 255,164,101, 52,215,167,127,230,204,181,164,101, 52,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,164,101, 52, + 215,169,129,230,205,182,164,101, 52,255, 0,255,255, 0,255,164,101, + 52,215,169,129,230,205,182,164,101, 52,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,164,101, 52,216,171,132, + 230,206,183,164,101, 52,255, 0,255,255, 0,255,164,101, 52,216,171, + 132,230,206,183,164,101, 52,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,164,101, 52,217,174,137,230,206,183, + 164,101, 52,255, 0,255,255, 0,255,164,101, 52,217,174,137,230,206, + 183,164,101, 52,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,164,101, 52,217,176,141,230,206,183,164,101, 52, + 255, 0,255,255, 0,255,164,101, 52,217,176,141,230,206,183,164,101, + 52,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,164,101, 52,217,178,143,230,206,183,164,101, 52,255, 0,255, + 255, 0,255,164,101, 52,217,178,143,230,206,183,164,101, 52,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,164, + 101, 52,218,179,145,230,206,183,164,101, 52,255, 0,255,255, 0,255, + 164,101, 52,218,179,145,230,206,183,164,101, 52,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,164,101, 52,218, + 181,147,230,207,185,164,101, 52,255, 0,255,255, 0,255,164,101, 52, + 218,181,147,230,207,185,164,101, 52,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,164,101, 52,219,182,148,231, + 209,187,164,101, 52,255, 0,255,255, 0,255,164,101, 52,219,182,148, + 231,209,187,164,101, 52,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,164,101, 52,221,188,157,231,209,188,164, + 101, 52,255, 0,255,255, 0,255,164,101, 52,221,188,157,231,209,188, + 164,101, 52,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,162,102, 55,220,191,164,223,198,175,162,102, 55,255, + 0,255,255, 0,255,162,102, 55,220,191,164,223,198,175,162,102, 55, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,153,110, 76,171,113, 67,172,114, 68,153,110, 76,255, 0,255,255, + 0,255,153,110, 76,171,113, 67,172,114, 68,153,110, 76,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_stop : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 87, 72,197, 76, 51,146, 76, 51,146, 76, 51,146, 76, 51, + 146, 76, 51,146, 76, 51,146, 76, 51,146, 76, 51,146, 76, 51,146, 76, + 51,146, 76, 51,146,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 87, 72,197,135,150,246,124,141,247,114,132,248,104,124,248, 94,115, + 250, 83,106,250, 74, 99,250, 66, 92,251, 58, 85,252, 51, 79,252, 76, + 51,146,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 87, 72,197, + 146,158,245,135,150,246,124,141,247,114,133,248,104,124,249, 94,115, + 249, 84,107,250, 75, 99,251, 66, 92,251, 57, 85,252, 76, 51,146,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 87, 72,197,155,167,245, + 146,159,245,135,150,247,124,141,247,114,132,248,103,124,248, 94,115, + 249, 84,107,250, 74, 99,251, 65, 92,251, 76, 51,146,255, 0,255,255, + 0,255,255, 0,255,255, 0,255, 87, 72,197,166,175,244,156,167,245, + 145,159,245,135,150,246,125,141,247,113,132,247,104,124,248, 93,115, + 249, 84,106,250, 74, 99,251, 76, 51,146,255, 0,255,255, 0,255,255, + 0,255,255, 0,255, 87, 72,197,174,183,243,165,175,245,156,167,245, + 145,159,245,135,150,247,124,141,247,114,132,248,104,123,249, 93,115, + 249, 83,107,250, 76, 51,146,255, 0,255,255, 0,255,255, 0,255,255, + 0,255, 87, 72,197,183,190,243,175,183,244,166,176,244,155,168,245, + 146,159,246,135,150,246,124,141,247,114,132,248,103,123,248, 93,115, + 249, 76, 51,146,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 87, + 72,197,191,197,242,183,190,243,175,183,244,165,175,244,156,167,245, + 146,159,246,135,149,246,125,141,247,114,132,248,104,124,248, 76, 51, + 146,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 87, 72,197,199, + 202,241,191,197,243,183,190,243,174,183,244,166,175,244,155,167,245, + 146,159,246,135,150,246,124,141,247,114,132,247, 76, 51,146,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255, 87, 72,197,204,208,241,198, + 203,241,191,197,242,183,191,243,175,183,244,166,175,245,155,168,245, + 145,159,246,135,150,246,125,141,247, 76, 51,146,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255, 87, 72,197,209,212,241,204,208,242,198, + 203,242,191,197,242,183,190,243,174,184,243,165,175,244,155,168,244, + 145,159,245,135,149,246, 76, 51,146,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255, 87, 72,197, 87, 72,197, 87, 72,197, 87, 72,197, 87, + 72,197, 87, 72,197, 87, 72,197, 87, 72,197, 87, 72,197, 87, 72,197, + 87, 72,197, 87, 72,197,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); diff --git a/examples/apps/debugserver/images/clean.bmp b/examples/apps/debugserver/images/clean.bmp Binary files differnew file mode 100644 index 00000000..74575793 --- /dev/null +++ b/examples/apps/debugserver/images/clean.bmp diff --git a/examples/apps/debugserver/images/pause.bmp b/examples/apps/debugserver/images/pause.bmp Binary files differnew file mode 100644 index 00000000..677d37b2 --- /dev/null +++ b/examples/apps/debugserver/images/pause.bmp diff --git a/examples/apps/debugserver/images/run.bmp b/examples/apps/debugserver/images/run.bmp Binary files differnew file mode 100644 index 00000000..9cccfaa0 --- /dev/null +++ b/examples/apps/debugserver/images/run.bmp diff --git a/examples/apps/debugserver/images/state_error.bmp b/examples/apps/debugserver/images/state_error.bmp Binary files differnew file mode 100644 index 00000000..d99e6440 --- /dev/null +++ b/examples/apps/debugserver/images/state_error.bmp diff --git a/examples/apps/debugserver/images/state_info.bmp b/examples/apps/debugserver/images/state_info.bmp Binary files differnew file mode 100644 index 00000000..d92895ae --- /dev/null +++ b/examples/apps/debugserver/images/state_info.bmp diff --git a/examples/apps/debugserver/images/state_lightbulb.bmp b/examples/apps/debugserver/images/state_lightbulb.bmp Binary files differnew file mode 100644 index 00000000..f9937c70 --- /dev/null +++ b/examples/apps/debugserver/images/state_lightbulb.bmp diff --git a/examples/apps/debugserver/images/state_lightbulb_off.bmp b/examples/apps/debugserver/images/state_lightbulb_off.bmp Binary files differnew file mode 100644 index 00000000..1bdcdb45 --- /dev/null +++ b/examples/apps/debugserver/images/state_lightbulb_off.bmp diff --git a/examples/apps/debugserver/images/state_warning.bmp b/examples/apps/debugserver/images/state_warning.bmp Binary files differnew file mode 100644 index 00000000..e1a75926 --- /dev/null +++ b/examples/apps/debugserver/images/state_warning.bmp diff --git a/examples/apps/debugserver/images/status.bmp b/examples/apps/debugserver/images/status.bmp Binary files differnew file mode 100644 index 00000000..4bdd4ad7 --- /dev/null +++ b/examples/apps/debugserver/images/status.bmp diff --git a/examples/apps/debugserver/images/stop.bmp b/examples/apps/debugserver/images/stop.bmp Binary files differnew file mode 100644 index 00000000..f27fc185 --- /dev/null +++ b/examples/apps/debugserver/images/stop.bmp diff --git a/examples/apps/debugserver/state_images.inc b/examples/apps/debugserver/state_images.inc new file mode 100644 index 00000000..1c6aa2e3 --- /dev/null +++ b/examples/apps/debugserver/state_images.inc @@ -0,0 +1,260 @@ + +Const + DBS_state_info : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,241, 12,227,203, 41, + 155,161, 70, 81,144, 76, 62,142, 75, 62,154, 69, 82,197, 39,156,238, + 11,227,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,224, 28,189,163, 77, 72,178,128, 87,213,183, + 147,219,195,166,218,195,166,210,180,144,171,122, 82,146, 71, 72,216, + 26,189,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 226, 32,189,163, 81, 60,203,167,125,216,187,159,195,156,119,182,138, + 98,180,134, 96,190,150,114,209,179,151,197,163,119,137, 76, 62,217, + 26,189,255, 0,255,255, 0,255,255, 0,255,244, 15,228,180, 94, 74, + 207,170,129,218,188,162,190,145,102,186,140, 98,183,137, 95,179,132, + 94,177,131, 93,176,131, 92,205,170,141,198,165,121,149, 72, 73,239, + 11,228,255, 0,255,255, 0,255,220, 59,155,191,145, 94,224,194,168, + 197,150,108,194,145,105,225,203,184,254,253,252,255,255,254,234,220, + 208,180,133, 94,179,133, 94,212,181,153,174,123, 86,200, 40,155,255, + 0,255,255, 0,255,197,108, 82,219,188,156,213,173,137,199,152,108, + 195,149,105,193,147,103,237,223,211,250,247,244,187,139, 99,185,138, + 99,184,138, 98,197,157,120,210,184,147,160, 70, 82,255, 0,255,255, + 0,255,193,122, 60,227,199,175,208,162,118,197,153,107,196,151,106, + 196,150,105,238,224,212,251,247,244,191,144,102,190,143,101,190,143, + 100,190,146,105,223,198,170,150, 77, 59,255, 0,255,255, 0,255,199, + 128, 66,228,201,176,208,163,122,204,157,113,199,154,108,197,152,107, + 255,255,255,255,255,254,195,150,105,193,148,104,194,148,104,195,152, + 109,223,197,171,153, 80, 59,255, 0,255,255, 0,255,210,122, 92,224, + 188,159,219,179,147,207,160,117,205,158,114,203,156,113,221,191,163, + 221,191,162,197,153,107,197,153,107,196,152,107,209,171,133,216,186, + 151,172, 74, 82,255, 0,255,255, 0,255,231, 72,164,205,156,104,231, + 203,180,212,165,122,208,160,119,207,158,116,251,248,245,251,248,245, + 203,158,113,203,157,113,205,161,119,223,192,165,185,138, 91,210, 45, + 155,255, 0,255,255, 0,255,249, 20,231,211,128, 90,217,178,140,230, + 202,179,214,169,125,209,165,121,226,196,168,225,195,168,208,162,118, + 209,164,119,221,189,162,208,172,133,180, 92, 74,244, 13,228,255, 0, + 255,255, 0,255,255, 0,255,241, 49,197,209,135, 79,217,178,140,230, + 205,184,224,186,157,215,171,133,214,169,130,217,179,145,225,194,171, + 212,174,134,180,102, 62,230, 36,189,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,242, 49,198,214,131, 91,208,160,106,224, + 191,160,227,197,174,227,197,174,223,188,159,200,151, 98,195,113, 73, + 233, 41,189,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,250, 21,231,234, 74,168,216,125,101,207, + 133, 78,205,132, 74,209,119, 91,228, 68,161,247, 19,228,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_state_lightbulb : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,212, 61, + 230, 79, 77, 92, 69, 69, 70, 64, 65, 66, 70, 68, 80,201, 65,223,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,131, 85,149,188,188, + 187,235,234,234,205,204,204,163,161,159, 90, 65,109,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,121,105,140,166,165,162,168,162, + 162,157,153,152,148,143,139, 82, 69, 96,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,219, 49,236,102,126,151,122,149,163, 58,138,152, 53,127, + 140, 96,110,118, 46, 67, 88,223, 41,239,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,227, 38,251, + 112,151,225, 70,157,230, 75,190,247, 71,230,253, 65,229,253, 81,195, + 251, 22,124,222, 61,123,211,213, 47,247,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,230, 35,251,105,159,233,166,211,243, + 101,174,240,116,225,246,115,225,246,114,224,246,113,224,246, 76,163, + 236,156,195,239, 44,125,215,201, 59,245,255, 0,255,255, 0,255,255, + 0,255,253, 3,255,127,153,236,165,212,243,220,250,254, 56,161,235, + 116,225,246,106,228,246, 93,226,245,114,224,246, 22,145,232,192,245, + 253,172,206,241, 45,124,215,234, 25,251,255, 0,255,255, 0,255,183, + 102,245,139,200,239,236,252,254,119,225,247, 47,153,234,117,225,246, + 116,225,246,104,222,245,115,225,246, 9,134,230, 70,213,243,220,254, + 254,111,170,229,121,115,230,255, 0,255,255, 0,255,127,169,238,201, + 233,249,212,249,253,124,227,247,134,229,248, 96,177,239,104,181,239, + 99,180,239, 76,166,236,130,228,247, 89,220,245,138,235,250,203,226, + 247, 57,135,218,255, 0,255,255, 0,255,126,192,238,223,246,253,200, + 245,252,205,246,252,214,247,253,211,244,252,207,242,252,202,241,251, + 196,240,252,186,242,251,150,234,248,114,229,247,226,244,253, 50,136, + 216,255, 0,255,255, 0,255,149,183,242,210,239,251,219,249,254,223, + 249,253,236,251,254,238,252,254,239,252,254,239,252,254,235,251,254, + 224,249,254,184,241,251,168,241,251,203,229,248, 62,141,221,255, 0, + 255,255, 0,255,200,115,249,180,227,248,229,250,254,219,248,253,228, + 250,254,240,252,254,249,254,255,249,254,255,239,252,254,210,246,253, + 180,241,251,237,253,255,107,179,234,136,121,236,255, 0,255,255, 0, + 255,252, 10,255,181,173,246,195,235,250,226,249,253,224,249,253,213, + 247,253,207,246,253,201,244,252,199,244,252,214,249,253,235,250,254, + 144,202,242, 80,151,230,243, 17,253,255, 0,255,255, 0,255,255, 0, + 255,247, 22,254,196,159,249,183,228,248,199,236,251,215,243,252,225, + 247,253,226,248,254,216,240,252,182,223,248,107,187,237,108,152,235, + 232, 33,252,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,227, 82,251,193,156,248,168,192,246,148,202,241,133, + 197,240,128,182,240,135,157,240,187, 98,246,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_state_warning : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 123,108,237, 45,167,224, 43,164,223, 41,161,221, 39,158,220, 37,155, + 218, 35,152,217, 32,147,214, 27,140,211, 22,133,207, 17,126,204, 13, + 119,201, 9,113,198, 6,108,195, 3,104,193, 93, 64,214, 72,154,230, + 190,227,245,244,252,254,239,251,254,238,251,254,238,251,254,239,252, + 254,239,252,254,239,251,254,238,251,254,237,251,254,237,251,254,236, + 251,254,242,252,254,171,206,235, 42, 88,202,195, 52,247, 98,191,232, + 244,252,254,181,239,250, 88,218,245, 88,218,245, 87,216,243, 88,215, + 242, 88,214,242, 87,217,244, 81,216,245, 78,215,244, 98,218,246,234, + 251,254, 68,147,210,182, 32,237,255, 0,255, 94,139,234,157,215,241, + 231,249,253,139,229,248, 90,219,246, 91,218,244, 61,161,213, 61,161, + 213, 84,214,242, 82,216,245, 80,214,244,216,246,252,136,191,229, 85, + 85,217,255, 0,255,255, 0,255,227, 25,251, 55,174,229,243,251,254, + 195,242,251, 92,220,246, 92,218,244,100,223,246, 87,203,235, 85,214, + 242, 84,217,245,148,231,248,227,244,251, 28,132,209,222, 18,248,255, + 0,255,255, 0,255,255, 0,255,121,119,238,140,210,240,234,251,254, + 148,230,248, 92,218,244, 71,177,221, 61,161,213, 86,215,242, 92,219, + 245,222,248,253,125,192,231,135, 75,232,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,246, 9,254, 69,167,232,200,234,247,230,250,253, + 93,218,244, 61,161,213, 61,161,213, 87,215,242,199,243,252,192,227, + 244, 59,137,221,245, 7,253,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,185, 64,247,113,200,237,249,254,255, 94,220,244, + 62,162,213, 62,162,213, 92,217,244,237,251,254,104,187,229,178, 55, + 242,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255, 90,152,236,169,223,244,237,249,253, 62,163,214, + 62,163,214,212,245,252,162,215,241, 93,125,230,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,218, 35,251, 58,182,232,249,253,255,148,233,249,158,235,250, + 236,250,254, 49,167,225,215, 31,249,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,116,131,239,148,216,242,243,252,254,231,250,254,143,211,240, + 134,101,239,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,241, + 13,254, 68,177,234,241,250,253,213,239,250, 67,165,232,241, 12,253, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,141, + 110,243,133,212,241,130,209,240,173, 75,245,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,253, 2,255, 93, + 156,238,104,142,239,253, 2,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_state_error : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,227, 11,247,154, 37, + 227, 76, 62,204, 54, 67,197, 52, 65,195, 70, 57,199,149, 31,222,225, + 9,246,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,191, 27,239, 76, 74,209, 82,100,212,132,144, + 231,149,160,238,149,159,237,131,142,229, 76, 93,206, 61, 59,195,184, + 21,233,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 193, 30,241, 71, 85,213,117,132,227,161,172,244,127,139,236, 92,103, + 228, 91,102,227,125,135,234,159,168,241,111,124,221, 50, 64,194,185, + 21,234,255, 0,255,255, 0,255,255, 0,255,231, 13,250, 89, 86,222, + 120,136,230,163,176,245, 87,103,231, 86,101,230,137,146,237,136,146, + 236, 83, 95,226, 82, 93,225,159,169,242,111,125,221, 65, 61,198,226, + 9,246,255, 0,255,255, 0,255,168, 51,240, 96,115,224,164,179,247, + 90,110,235, 89,108,234, 88,105,232,255,255,255,255,255,255, 85, 98, + 229, 84, 97,227, 83, 95,226,159,169,242, 80, 97,209,151, 35,225,255, + 0,255,255, 0,255,106, 94,233,142,159,240,132,153,244, 92,115,238, + 91,112,236, 90,110,235,144,157,241,166,175,243, 87,103,231, 86,101, + 230, 85, 98,229,125,137,235,133,145,231, 78, 64,206,255, 0,255,255, + 0,255, 93,109,234,160,179,247,101,128,242, 95,120,240, 93,118,239, + 92,115,238,211,217,250,255,255,255, 89,108,234, 88,105,232, 87,103, + 231, 93,108,231,153,165,241, 60, 76,204,255, 0,255,255, 0,255, 97, + 114,238,161,182,248,103,132,244, 96,124,243, 95,122,241, 95,120,240, + 255,255,255,255,255,255, 91,112,236, 90,110,235, 89,108,234, 95,111, + 233,155,168,241, 65, 80,208,255, 0,255,255, 0,255,118,105,243,145, + 166,243,136,161,248, 98,128,244, 97,126,243, 96,124,243,255,255,255, + 255,255,255, 93,118,239, 92,115,238, 91,112,236,130,147,241,137,152, + 236, 89, 76,216,255, 0,255,255, 0,255,178, 62,250,108,129,236,169, + 189,251, 99,130,245, 98,129,245, 98,128,244,255,255,255,255,255,255, + 95,122,241, 95,120,240, 93,118,239,165,181,248, 93,112,221,162, 46, + 235,255, 0,255,255, 0,255,235, 17,254,117,114,247,131,151,240,169, + 189,251, 99,130,245, 99,130,245,255,255,255,255,255,255, 97,126,243, + 96,124,243,166,185,249,123,141,234, 92, 90,225,231, 13,250,255, 0, + 255,255, 0,255,255, 0,255,206, 43,253,109,123,248,132,151,241,169, + 189,251,138,163,248,107,137,246,107,137,246,137,162,248,168,188,250, + 127,146,236, 89,103,229,198, 34,246,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,206, 43,253,119,117,250,110,131,238,146, + 166,244,160,180,248,160,180,248,145,166,243,104,125,233,105,104,237, + 200, 37,248,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,235, 18,255,181, 65,253,124,112,250,108, + 122,247,106,120,245,119,106,245,177, 60,248,233, 16,253,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + +Const + DBS_state_lightbulb_off : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,212, 61, + 230, 79, 77, 92, 69, 69, 70, 64, 65, 66, 70, 68, 80,201, 65,223,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,131, 85,149,188,188, + 187,235,234,234,205,204,204,163,161,159, 90, 65,109,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,121,105,140,166,165,162,168,162, + 162,157,153,152,148,143,139, 82, 69, 96,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,243, 57,227,102,126,151,152,161,154,105,145,134,100,136, + 123,129,127,113, 46, 67, 88,244, 48,230,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,248, 41,238, + 216,175,166,207,186,147,212,193,158,213,194,160,212,193,157,215,197, + 164,195,168,118,201,164,133,244, 54,229,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,249, 38,240,215,178,166,232,222,203, + 217,200,168,221,206,179,221,206,178,221,206,178,221,206,178,210,190, + 154,229,217,196,198,168,125,241, 69,222,255, 0,255,255, 0,255,255, + 0,255,255, 3,254,222,169,180,232,222,203,247,243,237,145,174,179, + 221,206,179,219,203,174,216,199,167,221,206,178,127,161,167,240,234, + 222,233,223,205,198,165,126,249, 29,242,255, 0,255,255, 0,255,236, + 109,213,225,212,187,251,249,246,223,209,182,141,169,176,221,206,179, + 221,206,179,218,202,172,221,206,178,119,153,161,210,190,154,247,243, + 237,217,200,168,219,139,173,255, 0,255,255, 0,255,222,179,180,242, + 236,225,245,240,232,223,209,183,226,213,190,167,189,195,172,192,197, + 169,191,196,156,180,187,224,211,186,215,197,165,228,216,193,242,236, + 225,202,170,134,255, 0,255,255, 0,255,222,201,180,247,243,237,242, + 236,226,243,238,228,245,241,233,244,239,230,243,238,229,242,236,226, + 241,235,224,239,232,218,229,218,197,221,206,178,248,245,239,199,173, + 129,255, 0,255,255, 0,255,227,189,193,243,238,229,246,242,236,247, + 243,237,251,249,246,251,249,246,251,249,246,251,249,246,250,248,244, + 248,245,239,238,231,217,234,225,208,242,236,225,204,172,139,255, 0, + 255,255, 0,255,241,117,224,237,229,214,249,247,242,246,242,236,249, + 247,242,251,250,247,254,254,253,254,254,253,251,249,246,244,239,230, + 237,229,214,251,249,246,217,200,168,224,136,184,255, 0,255,255, 0, + 255,254, 10,253,236,174,212,240,234,222,248,245,239,247,243,237,245, + 241,233,243,238,229,242,236,226,242,236,225,245,241,233,250,248,244, + 227,215,192,209,171,152,252, 18,248,255, 0,255,255, 0,255,255, 0, + 255,253, 22,251,240,161,221,237,229,214,242,236,225,245,241,233,248, + 245,239,248,245,240,245,241,233,237,229,214,217,200,169,218,168,170, + 249, 35,241,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,248, 82,239,239,158,220,234,195,206,228,208,194,224, + 203,185,222,190,182,225,165,186,237,102,215,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); |