object frmMain: TfrmMain Left = 451 Top = 223 Caption = 'MQTT Client for NILM[Program by QSenTech. Co. Ltd]' ClientHeight = 628 ClientWidth = 1111 Color = clBtnFace Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] Menu = MainMenu1 OldCreateOrder = False Position = poScreenCenter OnClose = FormClose OnCloseQuery = FormCloseQuery OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 12 object StatusBar1: TStatusBar Left = 0 Top = 609 Width = 1111 Height = 19 Panels = < item Width = 50 end item Width = 50 end item Width = 50 end item Width = 50 end> end object Panel2: TPanel Left = 0 Top = 0 Width = 1111 Height = 42 Align = alTop BevelKind = bkFlat BevelOuter = bvNone Caption = 'Panel2' Color = clWhite ParentBackground = False ShowCaption = False TabOrder = 1 DesignSize = ( 1107 38) object Label5: TLabel Left = 10 Top = 2 Width = 203 Height = 30 Caption = '2024-12-31 23:59:59' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -21 Font.Name = #47569#51008' '#44256#46357 Font.Style = [fsBold] ParentFont = False end object Label6: TLabel Left = 855 Top = 8 Width = 240 Height = 21 Alignment = taRightJustify Anchors = [akTop, akRight] Caption = #49884#51089' '#49884#44036' : 2024-12-31 23:59:59' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -16 Font.Name = #47569#51008' '#44256#46357 Font.Style = [] ParentFont = False ExplicitLeft = 280 end end object PageControl1: TPageControl Left = 0 Top = 42 Width = 1111 Height = 567 ActivePage = TabSheet1 Align = alClient TabOrder = 2 object TabSheet1: TTabSheet Caption = 'Status' object cxGrid_NILM: TcxGrid Left = 0 Top = 0 Width = 1103 Height = 539 Align = alClient Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #47569#51008' '#44256#46357 Font.Style = [] ParentFont = False TabOrder = 0 LookAndFeel.Kind = lfUltraFlat LookAndFeel.NativeStyle = False LookAndFeel.SkinName = 'DevExpressStyle' object cxGrid_NILM_Tv: TcxGridTableView Navigator.Buttons.CustomButtons = <> ScrollbarAnnotations.CustomAnnotations = <> DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting] DataController.Summary.DefaultGroupSummaryItems = <> DataController.Summary.FooterSummaryItems = < item Format = ',0 '#44148 end> DataController.Summary.SummaryGroups = <> OptionsBehavior.PostponedSynchronization = False OptionsBehavior.FocusCellOnCycle = True OptionsCustomize.ColumnSorting = False OptionsCustomize.ColumnsQuickCustomization = True OptionsData.Deleting = False OptionsData.DeletingConfirmation = False OptionsData.Editing = False OptionsData.Inserting = False OptionsSelection.CellSelect = False OptionsSelection.MultiSelect = True OptionsView.NoDataToDisplayInfoText = 'No Data...' OptionsView.CellAutoHeight = True OptionsView.DataRowHeight = 25 OptionsView.GroupByBox = False OptionsView.HeaderHeight = 25 OptionsView.Indicator = True OptionsView.IndicatorWidth = 10 object cxGrid_NILM_TvColumn0: TcxGridColumn Caption = 'NILMID' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn26: TcxGridColumn Caption = 'lastUpdate' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 110 end object cxGrid_NILM_TvColumn1: TcxGridColumn Caption = 'pf_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn2: TcxGridColumn Caption = 'Vrms_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn3: TcxGridColumn Caption = 'Irms_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn4: TcxGridColumn Caption = 'Var_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn5: TcxGridColumn Caption = 'Va_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn6: TcxGridColumn Caption = 'Pwr_1' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn7: TcxGridColumn Caption = 'pf_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn8: TcxGridColumn Caption = 'Vrms_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn9: TcxGridColumn Caption = 'Irms_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn10: TcxGridColumn Caption = 'Var_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn11: TcxGridColumn Caption = 'Va_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn12: TcxGridColumn Caption = 'Pwr_2' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn13: TcxGridColumn Caption = 'pf_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn14: TcxGridColumn Caption = 'Vrms_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn15: TcxGridColumn Caption = 'Irms_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn16: TcxGridColumn Caption = 'Var_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn17: TcxGridColumn Caption = 'Va_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn18: TcxGridColumn Caption = 'Pwr_3' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn19: TcxGridColumn Caption = 'gX' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn20: TcxGridColumn Caption = 'gY' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn21: TcxGridColumn Caption = 'gZ' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn22: TcxGridColumn Caption = 'aX' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn23: TcxGridColumn Caption = 'aY' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn24: TcxGridColumn Caption = 'aZ' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end object cxGrid_NILM_TvColumn25: TcxGridColumn Caption = 'TempC' FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taCenter Width = 60 end end object cxGrid_NILM_Lv: TcxGridLevel GridView = cxGrid_NILM_Tv end end end object TabSheet2: TTabSheet Caption = 'Log' ImageIndex = 1 object ListBox1: TListBox Left = 0 Top = 0 Width = 1103 Height = 468 Align = alClient Color = clSilver Font.Charset = ANSI_CHARSET Font.Color = clBlack Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ItemHeight = 12 ParentFont = False TabOrder = 0 OnDblClick = ListBox1DblClick end object Panel1: TPanel Left = 0 Top = 468 Width = 1103 Height = 71 Align = alBottom BevelOuter = bvNone Color = clBlack Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ParentFont = False TabOrder = 1 Visible = False object Label2: TLabel Left = 7 Top = 6 Width = 37 Height = 12 Caption = 'Label1' Font.Charset = ANSI_CHARSET Font.Color = clNavy Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end object Label3: TLabel Left = 7 Top = 24 Width = 37 Height = 12 Caption = 'Label1' Font.Charset = ANSI_CHARSET Font.Color = clNavy Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end object Label4: TLabel Left = 7 Top = 43 Width = 37 Height = 12 Caption = 'Label1' Font.Charset = ANSI_CHARSET Font.Color = clNavy Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end end end object TabSheet3: TTabSheet Caption = 'Trend' ImageIndex = 2 object Panel3: TPanel Left = 0 Top = 0 Width = 1103 Height = 539 Align = alClient BevelOuter = bvNone Caption = 'Panel3' ShowCaption = False TabOrder = 0 object Panel4: TPanel Left = 0 Top = 0 Width = 1103 Height = 73 Align = alTop BevelKind = bkFlat BevelOuter = bvNone TabOrder = 0 object Label1: TLabel Left = 136 Top = 16 Width = 53 Height = 15 Caption = 'NILM_ID' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end object Label7: TLabel Left = 274 Top = 16 Width = 60 Height = 15 Caption = 'NILM_CH' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end object ComboBox1: TComboBox Left = 202 Top = 13 Width = 63 Height = 23 Style = csDropDownList Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False TabOrder = 0 OnChange = ComboBox1Change end object ComboBox2: TComboBox Left = 340 Top = 13 Width = 63 Height = 23 Style = csDropDownList Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ItemIndex = 0 ParentFont = False TabOrder = 1 Text = '01' OnChange = ComboBox1Change Items.Strings = ( '01' '02') end object Button1: TButton Left = 6 Top = 9 Width = 73 Height = 33 Caption = 'Clear' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [] ParentFont = False TabOrder = 2 OnClick = Button1Click end object Edit2: TEdit Left = 85 Top = 16 Width = 40 Height = 20 Alignment = taCenter NumbersOnly = True TabOrder = 3 Text = '30' end object rb_RealTimeChart: TRadioButton Left = 487 Top = 16 Width = 81 Height = 17 Caption = 'RealTime' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False TabOrder = 4 OnClick = rb_LogloadChartClick end object rb_LogloadChart: TRadioButton Left = 423 Top = 16 Width = 58 Height = 17 Caption = 'Log' Checked = True Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False TabOrder = 5 TabStop = True OnClick = rb_LogloadChartClick end object Panel5: TPanel Left = 669 Top = 1 Width = 233 Height = 46 BevelOuter = bvNone TabOrder = 6 object Label8: TLabel Left = 204 Top = 16 Width = 15 Height = 15 Caption = #49884 Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -15 Font.Name = #44404#47548 Font.Style = [] ParentFont = False end object DatePicker2: TDatePicker Left = 22 Top = 9 Width = 131 Height = 29 Date = 45849.000000000000000000 DateFormat = 'yyyy/MM/dd' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -19 Font.Name = 'Segoe UI' Font.Style = [] TabOrder = 0 OnChange = DatePicker2Change end object TimePicker1: TTimePicker Left = 162 Top = 9 Width = 38 Height = 29 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -19 Font.Name = 'Segoe UI' Font.Style = [] TabOrder = 1 Time = 45932.584271238430000000 TimeFormat = 'hh' OnChange = TimePicker1Change end end object cb_PF: TCheckBox Left = 136 Top = 48 Width = 43 Height = 17 Caption = 'PF' Ctl3D = True Font.Charset = ANSI_CHARSET Font.Color = clRed Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentCtl3D = False ParentFont = False TabOrder = 7 OnClick = cb_PFClick end object cb_Vrms: TCheckBox Left = 188 Top = 48 Width = 64 Height = 17 Caption = 'Vrms' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentFont = False TabOrder = 8 OnClick = cb_PFClick end object cb_Irms: TCheckBox Left = 258 Top = 48 Width = 64 Height = 17 Caption = 'Irms' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentFont = False TabOrder = 9 OnClick = cb_PFClick end object cb_Var: TCheckBox Left = 328 Top = 48 Width = 64 Height = 17 Caption = 'Var' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentFont = False TabOrder = 10 OnClick = cb_PFClick end object cb_Va: TCheckBox Left = 392 Top = 48 Width = 64 Height = 17 Caption = 'Va' Checked = True Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentFont = False State = cbChecked TabOrder = 11 OnClick = cb_PFClick end object cb_Pwr: TCheckBox Left = 456 Top = 48 Width = 64 Height = 17 Caption = 'Pwr' Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = #44404#47548 Font.Style = [fsBold] ParentFont = False TabOrder = 12 OnClick = cb_PFClick end object CheckBox1: TCheckBox Left = 584 Top = 16 Width = 72 Height = 17 Caption = #51068#49884#51221#51648 TabOrder = 13 Visible = False end end object Panel6: TPanel Left = 0 Top = 73 Width = 1103 Height = 466 Align = alClient BevelOuter = bvNone TabOrder = 1 object Splitter1: TSplitter Left = 553 Top = 0 Width = 5 Height = 466 ExplicitLeft = 405 end object Chart_main: TChart Left = 558 Top = 0 Width = 545 Height = 466 Title.Text.Strings = ( 'TChart') OnClickSeries = Chart_mainClickSeries ClipPoints = False View3D = False Align = alClient TabOrder = 0 DefaultCanvas = 'TGDIPlusCanvas' PrintMargins = ( 15 23 15 23) ColorPaletteIndex = 13 end object Panel7: TPanel Left = 0 Top = 0 Width = 553 Height = 466 Align = alLeft BevelKind = bkFlat BevelOuter = bvNone Caption = 'Panel7' TabOrder = 1 DesignSize = ( 549 462) object Memo1: TMemo Left = 0 Top = 0 Width = 549 Height = 393 Align = alTop Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 WordWrap = False end object Button2: TButton Left = 6 Top = 408 Width = 75 Height = 41 Anchors = [akLeft, akBottom] Caption = 'Clear' TabOrder = 1 OnClick = Button2Click end object Button3: TButton Left = 87 Top = 408 Width = 114 Height = 41 Anchors = [akLeft, akBottom] Caption = 'Log Save' TabOrder = 2 OnClick = Button3Click end end end end end end object MQTTClient1: TMQTTClient KeepAlive = 10 MaxRetries = 8 RetryTime = 60 Clean = False Broker = False AutoSubscribe = False Port = 1883 LocalBounce = False OnClientID = MQTTClient1ClientID OnMon = MQTTClient1Mon OnOnline = MQTTClient1Online OnOffline = MQTTClient1Offline OnEnableChange = MQTTClient1EnableChange OnFailure = MQTTClient1Failure OnMsg = MQTTClient1Msg Left = 128 Top = 152 end object initTimer: TTimer OnTimer = initTimerTimer Left = 225 Top = 150 end object MainMenu1: TMainMenu Left = 19 Top = 162 object File2: TMenuItem Caption = 'File' object DebugMode1: TMenuItem Caption = 'Debug Mode' OnClick = DebugMode1Click end object N8: TMenuItem Caption = '-' end object ProgramExit1: TMenuItem Caption = 'Program Exit' OnClick = ProgramExit1Click end end object File1: TMenuItem Caption = 'MQTT' object Config1: TMenuItem Caption = 'MQTT '#50672#44208#49444#51221 OnClick = Config1Click end object N2: TMenuItem Caption = '-' Visible = False end object Connect1: TMenuItem Caption = 'Broker '#50672#44208 Visible = False OnClick = Connect1Click end object Disconnect1: TMenuItem Caption = 'Broker '#45130#44592 Visible = False OnClick = Disconnect1Click end end object NILM1: TMenuItem Caption = 'NILM' object Edit1: TMenuItem Caption = #51109#52824#44288#47532 OnClick = Edit1Click end object N1: TMenuItem Caption = #49444#48708#50672#44208 OnClick = N1Click end end end object insertTimer: TTimer Enabled = False OnTimer = insertTimerTimer Left = 318 Top = 150 end object Timer_DateTime: TTimer OnTimer = Timer_DateTimeTimer Left = 408 Top = 152 end object TrayIcon1: TTrayIcon OnDblClick = TrayIcon1DblClick Left = 315 Top = 233 end object tmrExit: TTimer Enabled = False Interval = 100 OnTimer = tmrExitTimer Left = 405 Top = 234 end object FDConnection1: TFDConnection Left = 36 Top = 296 end object FDQuery1: TFDQuery Connection = FDConnection1 Left = 124 Top = 300 end object FDPhysPgDriverLink1: TFDPhysPgDriverLink Left = 232 Top = 296 end object FDGUIxWaitCursor1: TFDGUIxWaitCursor Provider = 'Forms' Left = 352 Top = 300 end object MQTTClient1_old: TMQTTClient ClientID = 'DATA_HUB_PRY' KeepAlive = 10 MaxRetries = 8 RetryTime = 60 Clean = True Broker = False AutoSubscribe = False Username = 'qsentech' Password = 'qsentech!1233' Host = '192.168.200.200' Port = 1883 LocalBounce = False OnClientID = MQTTClient1ClientID OnMon = MQTTClient1Mon OnOnline = MQTTClient1Online OnOffline = MQTTClient1Offline OnEnableChange = MQTTClient1EnableChange OnFailure = MQTTClient1Failure OnMsg = MQTTClient1Msg Left = 120 Top = 400 end object FDQuery2: TFDQuery Connection = FDConnection1 Left = 240 Top = 393 end end