Due programmi che condividono uModbusRTU e uGauge: - Console/PlanciaConsole: plancia nautica descritta da file XML, con modalita' plancia e modalita' configurazione. Comandi, spie, selettori, strumenti e allarmi sonori; il bus gira in un thread suo perche' la finestra non si fermi mai. - ProjectPlancia: il programma di prova piu' vecchio, usato per collaudare i canali. Le plance sono in Console/*.xml, la documentazione in Console/LEGGIMI.md. Esclusi dal versionamento i compilati (.exe, .dcu), i file dell'IDE e un audio da 17 MB. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
225 lines
4.4 KiB
ObjectPascal
225 lines
4.4 KiB
ObjectPascal
object MainForm: TMainForm
|
|
Left = 0
|
|
Top = 0
|
|
Caption = 'Plancia ZEBRA - Controllo RS485'
|
|
ClientHeight = 620
|
|
ClientWidth = 820
|
|
Color = clBtnFace
|
|
Font.Charset = DEFAULT_CHARSET
|
|
Font.Color = clWindowText
|
|
Font.Height = -12
|
|
Font.Name = 'Segoe UI'
|
|
Font.Style = []
|
|
Position = poScreenCenter
|
|
OnCreate = FormCreate
|
|
OnDestroy = FormDestroy
|
|
TextHeight = 15
|
|
object pnlTop: TPanel
|
|
Left = 0
|
|
Top = 0
|
|
Width = 820
|
|
Height = 110
|
|
Align = alTop
|
|
TabOrder = 0
|
|
ExplicitWidth = 814
|
|
object lblPort: TLabel
|
|
Left = 16
|
|
Top = 16
|
|
Width = 62
|
|
Height = 15
|
|
Caption = 'Porta COM:'
|
|
end
|
|
object lblBaud: TLabel
|
|
Left = 160
|
|
Top = 16
|
|
Width = 30
|
|
Height = 15
|
|
Caption = 'Baud:'
|
|
end
|
|
object lblStatus: TLabel
|
|
Left = 448
|
|
Top = 15
|
|
Width = 104
|
|
Height = 15
|
|
Caption = 'Stato: Disconnesso'
|
|
Font.Charset = DEFAULT_CHARSET
|
|
Font.Color = clWindowText
|
|
Font.Height = -12
|
|
Font.Name = 'Segoe UI'
|
|
Font.Style = [fsBold]
|
|
ParentFont = False
|
|
end
|
|
object lblSlaveRele: TLabel
|
|
Left = 16
|
|
Top = 60
|
|
Width = 52
|
|
Height = 15
|
|
Caption = 'Slave rel'#232':'
|
|
end
|
|
object lblSlaveIO: TLabel
|
|
Left = 160
|
|
Top = 60
|
|
Width = 50
|
|
Height = 15
|
|
Caption = 'Slave I/O:'
|
|
end
|
|
object lblSlaveAnalog: TLabel
|
|
Left = 300
|
|
Top = 60
|
|
Width = 72
|
|
Height = 15
|
|
Caption = 'Slave analog.:'
|
|
end
|
|
object cboPort: TComboBox
|
|
Left = 16
|
|
Top = 34
|
|
Width = 121
|
|
Height = 23
|
|
Style = csDropDownList
|
|
TabOrder = 0
|
|
end
|
|
object cboBaud: TComboBox
|
|
Left = 160
|
|
Top = 34
|
|
Width = 121
|
|
Height = 23
|
|
Style = csDropDownList
|
|
TabOrder = 1
|
|
end
|
|
object btnConnect: TButton
|
|
Left = 448
|
|
Top = 41
|
|
Width = 100
|
|
Height = 30
|
|
Caption = 'Connetti'
|
|
TabOrder = 2
|
|
OnClick = btnConnectClick
|
|
end
|
|
object edtSlaveRele: TEdit
|
|
Left = 92
|
|
Top = 57
|
|
Width = 40
|
|
Height = 23
|
|
TabOrder = 3
|
|
Text = '1'
|
|
end
|
|
object edtSlaveIO: TEdit
|
|
Left = 226
|
|
Top = 57
|
|
Width = 40
|
|
Height = 23
|
|
TabOrder = 4
|
|
Text = '2'
|
|
end
|
|
object edtSlaveAnalog: TEdit
|
|
Left = 386
|
|
Top = 57
|
|
Width = 40
|
|
Height = 23
|
|
TabOrder = 5
|
|
Text = '5'
|
|
end
|
|
object CBReadInput: TCheckBox
|
|
Left = 451
|
|
Top = 77
|
|
Width = 97
|
|
Height = 17
|
|
Caption = 'Leggi Ingressi'
|
|
Checked = True
|
|
State = cbChecked
|
|
TabOrder = 6
|
|
end
|
|
object CBReadAnalog: TCheckBox
|
|
Left = 560
|
|
Top = 77
|
|
Width = 113
|
|
Height = 17
|
|
Caption = 'Leggi Analogici'
|
|
TabOrder = 7
|
|
end
|
|
end
|
|
object pgcMain: TPageControl
|
|
Left = 0
|
|
Top = 110
|
|
Width = 820
|
|
Height = 380
|
|
ActivePage = tsInterruttori
|
|
Align = alClient
|
|
TabOrder = 1
|
|
ExplicitWidth = 814
|
|
ExplicitHeight = 363
|
|
object tsInterruttori: TTabSheet
|
|
Caption = 'Interruttori'
|
|
object pnlInterruttori: TPanel
|
|
Left = 0
|
|
Top = 0
|
|
Width = 812
|
|
Height = 350
|
|
Align = alClient
|
|
BevelOuter = bvNone
|
|
TabOrder = 0
|
|
ExplicitWidth = 806
|
|
ExplicitHeight = 333
|
|
end
|
|
end
|
|
object tsPulsanti: TTabSheet
|
|
Caption = 'Pulsanti'
|
|
ImageIndex = 3
|
|
object pnlPulsanti: TPanel
|
|
Left = 0
|
|
Top = 0
|
|
Width = 812
|
|
Height = 350
|
|
Align = alClient
|
|
BevelOuter = bvNone
|
|
TabOrder = 0
|
|
end
|
|
end
|
|
object tsInputs: TTabSheet
|
|
Caption = 'Ingressi Binari'
|
|
ImageIndex = 1
|
|
object pnlInputs: TPanel
|
|
Left = 0
|
|
Top = 0
|
|
Width = 812
|
|
Height = 350
|
|
Align = alClient
|
|
BevelOuter = bvNone
|
|
TabOrder = 0
|
|
end
|
|
end
|
|
object tsAnalog: TTabSheet
|
|
Caption = 'Analogici'
|
|
ImageIndex = 2
|
|
object pnlAnalog: TPanel
|
|
Left = 0
|
|
Top = 0
|
|
Width = 812
|
|
Height = 350
|
|
Align = alClient
|
|
BevelOuter = bvNone
|
|
TabOrder = 0
|
|
end
|
|
end
|
|
end
|
|
object mmoLog: TMemo
|
|
Left = 0
|
|
Top = 490
|
|
Width = 820
|
|
Height = 130
|
|
Align = alBottom
|
|
ReadOnly = True
|
|
ScrollBars = ssVertical
|
|
TabOrder = 2
|
|
ExplicitTop = 473
|
|
ExplicitWidth = 814
|
|
end
|
|
object tmrPoll: TTimer
|
|
Enabled = False
|
|
Interval = 500
|
|
OnTimer = tmrPollTimer
|
|
Left = 760
|
|
Top = 16
|
|
end
|
|
end
|