Широковещательные сообщения (broad cast)
This commit is contained in:
parent
8afa7b0ec6
commit
3ba8b59095
BIN
AsyncPro_D2007.bpl
Normal file
BIN
AsyncPro_D2007.bpl
Normal file
Binary file not shown.
BIN
CAN_Terminal.dcu
BIN
CAN_Terminal.dcu
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
object CANTerminal: TCANTerminal
|
object CANTerminal: TCANTerminal
|
||||||
Left = 992
|
Left = 100
|
||||||
Top = 100
|
Top = 100
|
||||||
Width = 801
|
Width = 801
|
||||||
Height = 538
|
Height = 600
|
||||||
Caption = 'CANTerminal "Hunderitter" v.07.04.2025'
|
Caption = 'CANTerminal "Hunderitter" v.07.04.2025'
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
@ -36,13 +36,14 @@ object CANTerminal: TCANTerminal
|
|||||||
000380800003C000000FC000000FF000001FF000001FF80000FFF80000FFF800
|
000380800003C000000FC000000FF000001FF000001FF80000FFF80000FFF800
|
||||||
00FFFC0001FFFC0001FFFF800FFFFF800FFFFF800FFFFF800FFFFFFFFFFF}
|
00FFFC0001FFFC0001FFFF800FFFFF800FFFFF800FFFFF800FFFFFFFFFFF}
|
||||||
OldCreateOrder = False
|
OldCreateOrder = False
|
||||||
|
Visible = True
|
||||||
OnClose = FormClose
|
OnClose = FormClose
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
object RxLabel1: TRxLabel
|
object RxLabel1: TRxLabel
|
||||||
Left = 245
|
Left = 429
|
||||||
Top = 440
|
Top = 464
|
||||||
Width = 39
|
Width = 39
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'CAN on'
|
Caption = 'CAN on'
|
||||||
@ -63,7 +64,7 @@ object CANTerminal: TCANTerminal
|
|||||||
Left = 10
|
Left = 10
|
||||||
Top = 48
|
Top = 48
|
||||||
Width = 765
|
Width = 765
|
||||||
Height = 337
|
Height = 355
|
||||||
Caption = ' '#1055#1088#1086#1077#1082#1090' '
|
Caption = ' '#1055#1088#1086#1077#1082#1090' '
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
@ -139,16 +140,16 @@ object CANTerminal: TCANTerminal
|
|||||||
end
|
end
|
||||||
object Memo1: TMemo
|
object Memo1: TMemo
|
||||||
Left = 10
|
Left = 10
|
||||||
Top = 390
|
Top = 410
|
||||||
Width = 225
|
Width = 400
|
||||||
Height = 100
|
Height = 140
|
||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'')
|
'')
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
object CANswitch: TRxSwitch
|
object CANswitch: TRxSwitch
|
||||||
Left = 248
|
Left = 432
|
||||||
Top = 390
|
Top = 410
|
||||||
Width = 33
|
Width = 33
|
||||||
Height = 49
|
Height = 49
|
||||||
Caption = 'CANswitch'
|
Caption = 'CANswitch'
|
||||||
@ -156,8 +157,8 @@ object CANTerminal: TCANTerminal
|
|||||||
OnClick = CANswitchClick
|
OnClick = CANswitchClick
|
||||||
end
|
end
|
||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
Left = 472
|
Left = 672
|
||||||
Top = 400
|
Top = 448
|
||||||
Width = 273
|
Width = 273
|
||||||
Height = 169
|
Height = 169
|
||||||
Caption = 'UART'
|
Caption = 'UART'
|
||||||
@ -288,24 +289,24 @@ object CANTerminal: TCANTerminal
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object RadioGroup1: TRadioGroup
|
object RadioGroup1: TRadioGroup
|
||||||
Left = 296
|
Left = 480
|
||||||
Top = 390
|
Top = 410
|
||||||
Width = 73
|
Width = 73
|
||||||
Height = 65
|
Height = 65
|
||||||
Caption = ' Can Speed '
|
Caption = ' Can Speed '
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
end
|
end
|
||||||
object Button125: TRadioButton
|
object Button125: TRadioButton
|
||||||
Left = 304
|
Left = 487
|
||||||
Top = 408
|
Top = 427
|
||||||
Width = 50
|
Width = 50
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = '125K'
|
Caption = '125K'
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
end
|
end
|
||||||
object Button250: TRadioButton
|
object Button250: TRadioButton
|
||||||
Left = 304
|
Left = 487
|
||||||
Top = 432
|
Top = 451
|
||||||
Width = 50
|
Width = 50
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = '250K'
|
Caption = '250K'
|
||||||
|
@ -95,7 +95,8 @@ type
|
|||||||
BaseAdr: longword;
|
BaseAdr: longword;
|
||||||
PlusAdr: integer;
|
PlusAdr: integer;
|
||||||
CommAdr: longword;
|
CommAdr: longword;
|
||||||
UKSS: array[0..15] of TUKSS;
|
UKSS: array[0..16] of TUKSS;
|
||||||
|
|
||||||
Name: string;
|
Name: string;
|
||||||
DigiButNames: array[0..16] of string;
|
DigiButNames: array[0..16] of string;
|
||||||
DigiButNameChange: boolean;
|
DigiButNameChange: boolean;
|
||||||
@ -122,7 +123,6 @@ type
|
|||||||
ProjectQua : integer = 0;
|
ProjectQua : integer = 0;
|
||||||
ProjectNum : integer = 0;
|
ProjectNum : integer = 0;
|
||||||
|
|
||||||
|
|
||||||
Boxx : Tboxx;
|
Boxx : Tboxx;
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -146,21 +146,21 @@ begin
|
|||||||
Project.Bars.Name := TPanel.Create(self);
|
Project.Bars.Name := TPanel.Create(self);
|
||||||
Project.Bars.Name.Parent := GroupBox;
|
Project.Bars.Name.Parent := GroupBox;
|
||||||
Project.Bars.Name.Left :=10;
|
Project.Bars.Name.Left :=10;
|
||||||
Project.Bars.Name.Top :=15;
|
Project.Bars.Name.Top :=15;
|
||||||
Project.Bars.Name.Width :=100;
|
Project.Bars.Name.Width :=100;
|
||||||
Project.Bars.Name.Height := 30;
|
Project.Bars.Name.Height := 30;
|
||||||
|
|
||||||
Project.Bars.BaseAdr := TPanel.Create(self);
|
Project.Bars.BaseAdr := TPanel.Create(self);
|
||||||
Project.Bars.BaseAdr.Parent := GroupBox;
|
Project.Bars.BaseAdr.Parent := GroupBox;
|
||||||
Project.Bars.BaseAdr.Left :=10+100+10;
|
Project.Bars.BaseAdr.Left :=10+100+10;
|
||||||
Project.Bars.BaseAdr.Top :=15;
|
Project.Bars.BaseAdr.Top :=15;
|
||||||
Project.Bars.BaseAdr.Width :=100;
|
Project.Bars.BaseAdr.Width :=100;
|
||||||
Project.Bars.BaseAdr.Height := 30;
|
Project.Bars.BaseAdr.Height := 30;
|
||||||
|
|
||||||
Project.Bars.CommAdr := TPanel.Create(self);
|
Project.Bars.CommAdr := TPanel.Create(self);
|
||||||
Project.Bars.CommAdr.Parent := GroupBox;
|
Project.Bars.CommAdr.Parent := GroupBox;
|
||||||
Project.Bars.CommAdr.Left :=10+100+10+100+10;
|
Project.Bars.CommAdr.Left :=10+100+10+100+10;
|
||||||
Project.Bars.CommAdr.Top :=15;
|
Project.Bars.CommAdr.Top :=15;
|
||||||
Project.Bars.CommAdr.Width :=100;
|
Project.Bars.CommAdr.Width :=100;
|
||||||
Project.Bars.CommAdr.Height := 30;
|
Project.Bars.CommAdr.Height := 30;
|
||||||
|
|
||||||
@ -169,14 +169,14 @@ begin
|
|||||||
Label1.Top := Project.Bars.Name.Top + Project.Bars.Name.Height + tab*3;
|
Label1.Top := Project.Bars.Name.Top + Project.Bars.Name.Height + tab*3;
|
||||||
Label2.Top := Label1.Top; Label3.Top := Label1.Top; Label4.Top := Label1.Top;
|
Label2.Top := Label1.Top; Label3.Top := Label1.Top; Label4.Top := Label1.Top;
|
||||||
Label5.Top := Label1.Top; Label6.Top := Label1.Top; Label7.Top := Label1.Top;
|
Label5.Top := Label1.Top; Label6.Top := Label1.Top; Label7.Top := Label1.Top;
|
||||||
Label8.Top := Label1.Top; Label9.Top := Label1.Top; Label10.Top := Label1.Top;
|
Label8.Top := Label1.Top; Label9.Top := Label1.Top; Label10.Top := Label1.Top;
|
||||||
|
|
||||||
for i:= 0 to 15 do
|
for i:= 0 to 16 do
|
||||||
begin
|
begin
|
||||||
|
|
||||||
hei := 25;
|
hei := 25;
|
||||||
top := Label1.Top + Label1.Height + tab + (hei+tab)*(i mod 8);
|
top := Label1.Top + Label1.Height + tab + (hei+tab)*((i mod 8)+8*(i div 16));
|
||||||
lef := 10 + (i div 8)*(lev);
|
lef := 10 + ((i div 8) and 1)*(lev);
|
||||||
|
|
||||||
wid := hei;
|
wid := hei;
|
||||||
Project.UKSS[i].Bar.RSadr := TPanel.Create(self);
|
Project.UKSS[i].Bar.RSadr := TPanel.Create(self);
|
||||||
@ -236,18 +236,18 @@ begin
|
|||||||
Project.UKSS[i].Bar.Go.Width :=wid;
|
Project.UKSS[i].Bar.Go.Width :=wid;
|
||||||
Project.UKSS[i].Bar.Go.Height := hei;
|
Project.UKSS[i].Bar.Go.Height := hei;
|
||||||
Project.UKSS[i].Bar.Go.Left :=lef;
|
Project.UKSS[i].Bar.Go.Left :=lef;
|
||||||
Project.UKSS[i].Bar.Go.Top :=top;
|
Project.UKSS[i].Bar.Go.Top :=top;
|
||||||
Project.UKSS[i].Bar.Go.Caption :='S';
|
Project.UKSS[i].Bar.Go.Caption :='S';
|
||||||
Project.UKSS[i].Bar.Go.Font.Style:=[fsBold];
|
Project.UKSS[i].Bar.Go.Font.Style:=[fsBold];
|
||||||
Project.UKSS[i].Bar.Go.Tag := i;
|
Project.UKSS[i].Bar.Go.Tag := i;
|
||||||
Project.UKSS[i].Bar.Go.OnClick := ShoWinClick;
|
Project.UKSS[i].Bar.Go.OnClick := ShoWinClick;
|
||||||
|
|
||||||
if i=0 then Label5.Left := lef;
|
if i=0 then Label5.Left := lef;
|
||||||
if i=8 then Label10.Left := lef;
|
if i=8 then Label10.Left := lef;
|
||||||
|
|
||||||
if i<8 then lev := lef + wid + tab*2;
|
if i<8 then lev := lef + wid + tab*2;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PathExe:=ExtractFileDir(ParamStr(0))+'\';
|
PathExe:=ExtractFileDir(ParamStr(0))+'\';
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ begin
|
|||||||
then Project.Bars.CommAdr.Caption := ''
|
then Project.Bars.CommAdr.Caption := ''
|
||||||
else Project.Bars.CommAdr.Caption := '0x'+inttohex(Project.CommAdr,8);
|
else Project.Bars.CommAdr.Caption := '0x'+inttohex(Project.CommAdr,8);
|
||||||
|
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
begin
|
begin
|
||||||
Project.UKSS[i].Bar.RXadr.Tag:=0;
|
Project.UKSS[i].Bar.RXadr.Tag:=0;
|
||||||
Project.UKSS[i].Bar.TXadr.Tag:=0;
|
Project.UKSS[i].Bar.TXadr.Tag:=0;
|
||||||
@ -332,7 +332,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
Project.BaseAdr := 0;
|
Project.BaseAdr := 0;
|
||||||
Project.PlusAdr := 1 shl 28;
|
Project.PlusAdr := 1 shl 28;
|
||||||
left:=24;
|
left:=20;
|
||||||
end else begin
|
end else begin
|
||||||
Project.BaseAdr := Inifile.ReadInteger(ProjID,'BaseAdr',0);
|
Project.BaseAdr := Inifile.ReadInteger(ProjID,'BaseAdr',0);
|
||||||
Project.PlusAdr := Inifile.ReadInteger(ProjID,'PlusAdr',16);
|
Project.PlusAdr := Inifile.ReadInteger(ProjID,'PlusAdr',16);
|
||||||
@ -342,7 +342,7 @@ begin
|
|||||||
Project.CommAdr := Inifile.ReadInteger(ProjID,'CommAdr',0);
|
Project.CommAdr := Inifile.ReadInteger(ProjID,'CommAdr',0);
|
||||||
|
|
||||||
adr:=-1;
|
adr:=-1;
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
begin
|
begin
|
||||||
|
|
||||||
nom := 'Use_'+inttostr(i);
|
nom := 'Use_'+inttostr(i);
|
||||||
@ -417,7 +417,7 @@ begin
|
|||||||
|
|
||||||
if Project.Protokol=3
|
if Project.Protokol=3
|
||||||
|
|
||||||
then adr := ArrCanMessage[pak].m_dwID and $1F000000
|
then adr := ArrCanMessage[pak].m_dwID and $1FF00000
|
||||||
else adr := ArrCanMessage[pak].m_dwID;
|
else adr := ArrCanMessage[pak].m_dwID;
|
||||||
|
|
||||||
if boxx.qua = 0 then
|
if boxx.qua = 0 then
|
||||||
@ -469,7 +469,8 @@ begin
|
|||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
|
begin
|
||||||
if Project.UKSS[i].Use then
|
if Project.UKSS[i].Use then
|
||||||
begin
|
begin
|
||||||
if Project.UKSS[i].RXadr = adr then
|
if Project.UKSS[i].RXadr = adr then
|
||||||
@ -523,10 +524,11 @@ begin
|
|||||||
if(Project.UKSS[i].RXadr = adr) then mess.Surs := 1;
|
if(Project.UKSS[i].RXadr = adr) then mess.Surs := 1;
|
||||||
|
|
||||||
if Project.UKSS[i].Exist then
|
if Project.UKSS[i].Exist then
|
||||||
Project.UKSS[i].Wind.ReceiveCanData(mess);
|
Project.UKSS[i].Wind.ReceiveCanData(mess,i);
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
newstring:='';
|
newstring:='';
|
||||||
@ -542,7 +544,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
if CANswitch.StateOn then
|
if CANswitch.StateOn then
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
if Project.UKSS[i].Use then
|
if Project.UKSS[i].Use then
|
||||||
begin
|
begin
|
||||||
if Project.UKSS[i].Bar.RXadr.Tag = 0
|
if Project.UKSS[i].Bar.RXadr.Tag = 0
|
||||||
@ -581,7 +583,7 @@ begin
|
|||||||
CloseSlavna();
|
CloseSlavna();
|
||||||
CanTimer.Enabled:=false;
|
CanTimer.Enabled:=false;
|
||||||
boxx.qua := 0;
|
boxx.qua := 0;
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
begin
|
begin
|
||||||
Project.UKSS[i].Bar.RXadr.Color := clBtnFace;
|
Project.UKSS[i].Bar.RXadr.Color := clBtnFace;
|
||||||
Project.UKSS[i].Bar.TXadr.Color := clBtnFace;
|
Project.UKSS[i].Bar.TXadr.Color := clBtnFace;
|
||||||
@ -643,7 +645,7 @@ var i : integer;
|
|||||||
nom, num: string;
|
nom, num: string;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
for i:=0 to 15 do
|
for i:=0 to 16 do
|
||||||
if Project.UKSS[i].Exist then
|
if Project.UKSS[i].Exist then
|
||||||
begin
|
begin
|
||||||
Project.UKSS[i].Wind.Close;
|
Project.UKSS[i].Wind.Close;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Projects]
|
[Projects]
|
||||||
ProjectQua=9
|
ProjectQua=9
|
||||||
ProjectNum=6
|
ProjectNum=7
|
||||||
Project1=Áóêñèð
|
Project1=Áóêñèð
|
||||||
Project2=ÑÝÄÁÌ
|
Project2=ÑÝÄÁÌ
|
||||||
Project3=Ëåäîêîë
|
Project3=Ëåäîêîë
|
||||||
@ -340,8 +340,7 @@ DigiBut_15=Reset
|
|||||||
DigiBut_16=Nothing at all
|
DigiBut_16=Nothing at all
|
||||||
|
|
||||||
[23550.2]
|
[23550.2]
|
||||||
BaseAdr=$00235500
|
Protokol=3
|
||||||
PlusAdr=$10
|
|
||||||
Use_0=1
|
Use_0=1
|
||||||
Use_1=1
|
Use_1=1
|
||||||
Use_2=1
|
Use_2=1
|
||||||
@ -351,6 +350,7 @@ Use_5=1
|
|||||||
Use_11=1
|
Use_11=1
|
||||||
Use_12=1
|
Use_12=1
|
||||||
Use_13=1
|
Use_13=1
|
||||||
|
Use_16=1
|
||||||
CANadr_0=0
|
CANadr_0=0
|
||||||
CANadr_1=1
|
CANadr_1=1
|
||||||
CANadr_2=2
|
CANadr_2=2
|
||||||
@ -360,6 +360,7 @@ CANadr_5=8
|
|||||||
CANadr_11=5
|
CANadr_11=5
|
||||||
CANadr_12=7
|
CANadr_12=7
|
||||||
CANadr_13=9
|
CANadr_13=9
|
||||||
|
CANadr_16=$1f
|
||||||
RSadr_0=1
|
RSadr_0=1
|
||||||
RSadr_1=2
|
RSadr_1=2
|
||||||
RSadr_2=3
|
RSadr_2=3
|
||||||
@ -378,6 +379,7 @@ Name_5=
|
|||||||
Name_11=ÓÊÑÑ ÑÈ ÑÁ2
|
Name_11=ÓÊÑÑ ÑÈ ÑÁ2
|
||||||
Name_12=ÓÊÑÑ ÑÂÔ ÑÁ2
|
Name_12=ÓÊÑÑ ÑÂÔ ÑÁ2
|
||||||
Name_13=ÓÊÑÂÝÏ ÑÁ2
|
Name_13=ÓÊÑÂÝÏ ÑÁ2
|
||||||
|
Name_16=BroadCast
|
||||||
DigiBut_0=Test
|
DigiBut_0=Test
|
||||||
DigiBut_1=Def
|
DigiBut_1=Def
|
||||||
DigiBut_2=Save
|
DigiBut_2=Save
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
-$L+
|
-$L+
|
||||||
-$M-
|
-$M-
|
||||||
-$N+
|
-$N+
|
||||||
-$O+
|
-$O-
|
||||||
-$P+
|
-$P+
|
||||||
-$Q-
|
-$Q-
|
||||||
-$R-
|
-$R-
|
||||||
|
@ -15,7 +15,7 @@ K=0
|
|||||||
L=1
|
L=1
|
||||||
M=0
|
M=0
|
||||||
N=1
|
N=1
|
||||||
O=1
|
O=0
|
||||||
P=1
|
P=1
|
||||||
Q=0
|
Q=0
|
||||||
R=0
|
R=0
|
||||||
|
Binary file not shown.
10
Terminal.ini
Normal file
10
Terminal.ini
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Modbus]
|
||||||
|
FormVersion=0
|
||||||
|
Flags=0
|
||||||
|
ShowCmd=1
|
||||||
|
PixelsPerInch=96
|
||||||
|
MinMaxPos(2560x1440)=-1,-1,-1,-1
|
||||||
|
MinMaxPos=-1,-1,-1,-1
|
||||||
|
NormPos(2560x1440)=-877,143,-15,782
|
||||||
|
NormPos=-877,143,-15,782
|
||||||
|
Visible=0
|
BIN
UNiiefa.dcu
BIN
UNiiefa.dcu
Binary file not shown.
BIN
UNiiefa.dfm
BIN
UNiiefa.dfm
Binary file not shown.
231
UNiiefa.pas
231
UNiiefa.pas
@ -125,22 +125,22 @@ type
|
|||||||
procedure Renamido(Sender: TObject; var Key: Char);
|
procedure Renamido(Sender: TObject; var Key: Char);
|
||||||
procedure SaveProjectComms(ProjID: string);
|
procedure SaveProjectComms(ProjID: string);
|
||||||
|
|
||||||
procedure ReceiveCanData(Mess: TMessag);
|
procedure DataLenEditChange(Sender: TObject);
|
||||||
procedure DataLenEditChange(Sender: TObject);
|
procedure DataGridKeyPress(Sender: TObject; var Key: Char);
|
||||||
procedure DataGridKeyPress(Sender: TObject; var Key: Char);
|
procedure DataGridSetEditText(Sender: TObject; ACol, ARow: Integer;
|
||||||
procedure DataGridSetEditText(Sender: TObject; ACol, ARow: Integer;
|
const Value: String);
|
||||||
const Value: String);
|
procedure DataGridDrawCell(Sender: TObject; ACol, ARow: Integer;
|
||||||
procedure DataGridDrawCell(Sender: TObject; ACol, ARow: Integer;
|
Rect: TRect; State: TGridDrawState);
|
||||||
Rect: TRect; State: TGridDrawState);
|
procedure DataGridSelectCell(Sender: TObject; ACol, ARow: Integer;
|
||||||
procedure DataGridSelectCell(Sender: TObject; ACol, ARow: Integer;
|
var CanSelect: Boolean);
|
||||||
var CanSelect: Boolean);
|
procedure DataGridGetEditText(Sender: TObject; ACol, ARow: Integer;
|
||||||
procedure DataGridGetEditText(Sender: TObject; ACol, ARow: Integer;
|
var Value: String);
|
||||||
var Value: String);
|
procedure AutoTimeEditChange(Sender: TObject);
|
||||||
procedure AutoTimeEditChange(Sender: TObject);
|
|
||||||
|
|
||||||
private
|
private
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
|
|
||||||
|
Unites : Array[0..127] of TUnit;
|
||||||
Anapan : Array[0..63] of TPanel;
|
Anapan : Array[0..63] of TPanel;
|
||||||
Digipan : Array[0..511] of Tpanel;
|
Digipan : Array[0..511] of Tpanel;
|
||||||
Digibox : Array[0..15] of TCheckBox;
|
Digibox : Array[0..15] of TCheckBox;
|
||||||
@ -151,18 +151,54 @@ type
|
|||||||
DigiLab: Array[0..31] of TLabel;
|
DigiLab: Array[0..31] of TLabel;
|
||||||
AnaLab: Array[0..7] of TLabel;
|
AnaLab: Array[0..7] of TLabel;
|
||||||
|
|
||||||
|
kownt: integer;
|
||||||
|
waiste: integer;
|
||||||
|
fade: cardinal;
|
||||||
|
auto: cardinal;
|
||||||
|
reColor: integer;
|
||||||
|
doReColor: boolean;
|
||||||
|
|
||||||
AnalogStart : Integer;
|
AnalogStart : Integer;
|
||||||
AnalogLength : Integer;
|
AnalogLength : Integer;
|
||||||
DigitalStart : Integer;
|
DigitalStart : Integer;
|
||||||
DigitalLength : Integer;
|
DigitalLength : Integer;
|
||||||
|
|
||||||
Unites : Array[0..127] of TUnit;
|
rData2, rData3 : double;
|
||||||
|
FIniFile : TRegIniFile;
|
||||||
|
FRegFile : TIniFile;
|
||||||
|
Temper1,Temper2 : Array [0..12] of Real;
|
||||||
|
|
||||||
kownt: integer;
|
{ InsideFUst : boolean = False;
|
||||||
waiste: integer;
|
InsideSet : boolean = False;
|
||||||
fade: integer;
|
InsideComm : boolean = False;
|
||||||
reColor: integer;
|
}
|
||||||
doReColor: boolean;
|
LastSender : TObject;
|
||||||
|
|
||||||
|
KT1,KT2,KT3 : Array [0..12] of Real;
|
||||||
|
|
||||||
|
UNew : SmallInt;
|
||||||
|
MomentNew : SmallInt;
|
||||||
|
|
||||||
|
UNewZ : Integer;
|
||||||
|
|
||||||
|
NameEdit: TEdit;
|
||||||
|
|
||||||
|
ArrNiiefaAnalog : Array [0..100] of Word;
|
||||||
|
ArrNiiefaDigital : Array [0..100] of Word;
|
||||||
|
|
||||||
|
AutoMoment: cardinal;
|
||||||
|
RecolorMoment: cardinal;
|
||||||
|
|
||||||
|
Wordt: word;
|
||||||
|
|
||||||
|
// ProjectQua : integer = 0;
|
||||||
|
// ProjectNum : integer = 0;
|
||||||
|
|
||||||
|
clBlueGradient : array[0..20,0..1] of TColor;
|
||||||
|
clRedGradient : array[0..20] of TColor;
|
||||||
|
clGreenGradient : array[0..20,0..1] of TColor;
|
||||||
|
|
||||||
|
EmptyCell:TGridRect;
|
||||||
|
|
||||||
public
|
public
|
||||||
|
|
||||||
@ -172,51 +208,15 @@ type
|
|||||||
TXadr: longword;
|
TXadr: longword;
|
||||||
Protokol: integer;
|
Protokol: integer;
|
||||||
|
|
||||||
|
procedure ReceiveCanData(Mess: TMessag; dev:integer);
|
||||||
|
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
|
||||||
ModbusForm : TModbusForm;
|
ModbusForm : TModbusForm;
|
||||||
rData2, rData3 : double;
|
|
||||||
FIniFile : TRegIniFile;
|
|
||||||
FRegFile : TIniFile;
|
|
||||||
Temper1,Temper2 : Array [0..12] of Real;
|
|
||||||
InsideFUst : boolean = False;
|
|
||||||
|
|
||||||
InsideSet : boolean = False;
|
|
||||||
InsideComm : boolean = False;
|
|
||||||
|
|
||||||
LastSender : TObject;
|
|
||||||
|
|
||||||
ErrorCmd : boolean = False;
|
|
||||||
|
|
||||||
KT1,KT2,KT3 : Array [0..12] of Real;
|
|
||||||
|
|
||||||
UNew : SmallInt;
|
|
||||||
MomentNew : SmallInt;
|
|
||||||
|
|
||||||
UNewZ : Integer;
|
|
||||||
|
|
||||||
Count1 : Integer = 0;
|
|
||||||
Count2 : Integer = 0;
|
|
||||||
|
|
||||||
NameEdit: TEdit;
|
|
||||||
|
|
||||||
ArrNiiefaAnalog : Array [0..100] of Word;
|
|
||||||
ArrNiiefaDigital : Array [0..100] of Word;
|
|
||||||
flaganalogdigital : boolean = false;
|
|
||||||
|
|
||||||
Wordt: word;
|
|
||||||
|
|
||||||
ProjectQua : integer = 0;
|
|
||||||
ProjectNum : integer = 0;
|
|
||||||
|
|
||||||
clBlueGradient : array[0..20,0..1] of TColor;
|
|
||||||
clRedGradient : array[0..20] of TColor;
|
|
||||||
clGreenGradient : array[0..20,0..1] of TColor;
|
|
||||||
|
|
||||||
EmptyCell:TGridRect;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
|
|
||||||
@ -253,10 +253,10 @@ end;
|
|||||||
|
|
||||||
procedure TModbusForm.Memo1Change(Sender: TObject);
|
procedure TModbusForm.Memo1Change(Sender: TObject);
|
||||||
var
|
var
|
||||||
i : Integer;
|
i : Integer;
|
||||||
begin
|
begin
|
||||||
i:=Memo1.Lines.Count;
|
i:=Memo1.Lines.Count;
|
||||||
if i>100 then Memo1.Clear;
|
if i>100 then Memo1.Clear;
|
||||||
end;
|
end;
|
||||||
{
|
{
|
||||||
procedure TModbusForm.btnAnalogClick(Sender: TObject);
|
procedure TModbusForm.btnAnalogClick(Sender: TObject);
|
||||||
@ -297,7 +297,7 @@ end;
|
|||||||
|
|
||||||
procedure TModbusForm.FormCreate(Sender: TObject);
|
procedure TModbusForm.FormCreate(Sender: TObject);
|
||||||
var i: integer;
|
var i: integer;
|
||||||
inifile : TIniFile;
|
inifile : TIniFile;
|
||||||
nom,num: string;
|
nom,num: string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -452,62 +452,34 @@ begin
|
|||||||
Bitbut[i].OnClick:=BitButClick;
|
Bitbut[i].OnClick:=BitButClick;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
inifile := TIniFile.Create(PathExe+'Terminal.ini');
|
{ inifile := TIniFile.Create(PathExe+'Terminal.ini');
|
||||||
|
|
||||||
ProjectQua := strtoint(Inifile.ReadString('Projects','ProjectQua','0'));
|
ProjectQua := strtoint(Inifile.ReadString('Projects','ProjectQua','0'));
|
||||||
ProjectNum := strtoint(Inifile.ReadString('Projects','ProjectNum','0'));
|
ProjectNum := strtoint(Inifile.ReadString('Projects','ProjectNum','0'));
|
||||||
|
|
||||||
inifile.Free;
|
inifile.Free;
|
||||||
|
}
|
||||||
FadeSpinChange(Sender);
|
FadeSpinChange(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TModbusForm.myTimerTimer(Sender: TObject);
|
procedure TModbusForm.myTimerTimer(Sender: TObject);
|
||||||
var
|
var i : integer;
|
||||||
i : integer;
|
|
||||||
doIt: boolean;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
if(AutoBox.Checked) then
|
if(GetTickCount - RecolorMoment)>(Fade * 1000 / (clGrad-1))
|
||||||
if(AutoTimeEdit.Value > 0) then
|
then begin doReColor := true; RecolorMoment:= GetTickCount end;
|
||||||
begin
|
|
||||||
if(AutoBox.Tag > 0) then AutoBox.Tag:= AutoBox.Tag-1;
|
|
||||||
|
|
||||||
if(AutoBox.Tag = 0) then
|
if doReColor then
|
||||||
begin
|
|
||||||
SetButtonDo(Sender);
|
|
||||||
AutoBox.Tag:= trunc(AutoTimeEdit.Value);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if myTimer.Tag > 0 then myTimer.Tag:= myTimer.Tag-1
|
|
||||||
else begin
|
|
||||||
|
|
||||||
myTimer.Tag:=10;
|
|
||||||
|
|
||||||
Fade:=trunc(FadeSpin.Value);
|
|
||||||
|
|
||||||
inc(waiste);
|
|
||||||
if Waiste >= Fade then
|
|
||||||
begin
|
|
||||||
waiste :=1;
|
|
||||||
doIt := true;
|
|
||||||
end else doIt := false;
|
|
||||||
|
|
||||||
if doIt or doReColor then
|
|
||||||
for i:= 0 to 127 do
|
for i:= 0 to 127 do
|
||||||
if Unites[i].Age > 0 then
|
if Unites[i].Age > 0 then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
dec(Unites[i].Age);
|
dec(Unites[i].Age);
|
||||||
if Fade = 0 then Unites[i].Age := 0;
|
if Fade = 0 then Unites[i].Age := 0;
|
||||||
if Fade = 1 then dec(Unites[i].Age); // åùå ðàç
|
|
||||||
if Fade = 10 then Unites[i].Age := reColor;
|
if Fade = 10 then Unites[i].Age := reColor;
|
||||||
if Unites[i].Age <0 then Unites[i].Age:=0; // áûâàåò
|
if Unites[i].Age <0 then Unites[i].Age:=0; // áûâàåò
|
||||||
|
|
||||||
if (i>= AnalogStart)
|
if (i>= AnalogStart)
|
||||||
and(i< AnalogStart + AnalogLength)
|
and(i< AnalogStart + AnalogLength)
|
||||||
then Anapan[i-AnalogStart].Color := clBlueGradient[Unites[i].Age][Unites[i].Surs];
|
then Anapan[i-AnalogStart].Color := clBlueGradient[Unites[i].Age][Unites[i].Surs];
|
||||||
|
|
||||||
if (i>= DigitalStart)
|
if (i>= DigitalStart)
|
||||||
and(i< DigitalStart + DigitalLength)
|
and(i< DigitalStart + DigitalLength)
|
||||||
@ -517,7 +489,12 @@ begin
|
|||||||
|
|
||||||
doReColor:=false;
|
doReColor:=false;
|
||||||
|
|
||||||
end;
|
if(AutoBox.Checked) then
|
||||||
|
if(GetTickCount - AutoMoment)>(myTimer.Interval*Auto)
|
||||||
|
then begin
|
||||||
|
SetButtonDo(Sender);
|
||||||
|
AutoMoment:= GetTickCount;
|
||||||
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -528,8 +505,14 @@ var
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
if Protokol=3 then DataLenEdit.MaxValue:=4
|
||||||
|
else DataLenEdit.MaxValue :=3;
|
||||||
|
|
||||||
myTimer.Enabled:=True;
|
myTimer.Enabled:=True;
|
||||||
|
|
||||||
|
AutoMoment:= GetTickCount;
|
||||||
|
RecolorMoment:= GetTickCount;
|
||||||
|
|
||||||
AnalogStart := trunc(AnaStart.Value);
|
AnalogStart := trunc(AnaStart.Value);
|
||||||
DigitalStart:= trunc(DigiStart.Value);
|
DigitalStart:= trunc(DigiStart.Value);
|
||||||
AnalogLength:= trunc(AnaLen.Value);
|
AnalogLength:= trunc(AnaLen.Value);
|
||||||
@ -543,9 +526,7 @@ begin
|
|||||||
AnaStartChange(Sender);
|
AnaStartChange(Sender);
|
||||||
DigiStartChange(Sender);
|
DigiStartChange(Sender);
|
||||||
FadeSpinChange(Sender);
|
FadeSpinChange(Sender);
|
||||||
|
AutoTimeEditChange(Sender);
|
||||||
if Protokol=3 then DataLenEdit.MaxValue:=4
|
|
||||||
else DataLenEdit.MaxValue :=3;
|
|
||||||
DataLenEditChange(Sender);
|
DataLenEditChange(Sender);
|
||||||
|
|
||||||
BitBut[0].Checked:=true;
|
BitBut[0].Checked:=true;
|
||||||
@ -581,10 +562,6 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (what=0)
|
|
||||||
then Memo1.Lines.Add('Ok!')
|
|
||||||
else Memo1.Lines.Add('Well...');
|
|
||||||
inc(Count2);
|
|
||||||
|
|
||||||
If what=0 then
|
If what=0 then
|
||||||
begin
|
begin
|
||||||
@ -761,7 +738,7 @@ begin
|
|||||||
|
|
||||||
WriteMessageCanID(1, CanStr);
|
WriteMessageCanID(1, CanStr);
|
||||||
|
|
||||||
ReceiveCanData(mess);
|
ReceiveCanData(mess,Numer);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -792,24 +769,28 @@ begin
|
|||||||
mess.Data[2] := 0;
|
mess.Data[2] := 0;
|
||||||
mess.Surs := 1;
|
mess.Surs := 1;
|
||||||
|
|
||||||
ArrCanMessageSend[0].m_dwID := RXadr;
|
if Protokol=3 then
|
||||||
ArrCanMessageSend[0].m_bDLC := 8;
|
begin
|
||||||
|
ArrCanMessageSend[0].m_dwID := RXadr + mess.Addr;
|
||||||
|
ArrCanMessageSend[0].m_bDLC := 2;
|
||||||
|
ArrCanMessageSend[0].m_bData[1] := HB(mess.Data[0]);
|
||||||
|
ArrCanMessageSend[0].m_bData[2] := LB(mess.Data[0]);
|
||||||
|
end else begin
|
||||||
|
ArrCanMessageSend[0].m_dwID := RXadr;
|
||||||
|
ArrCanMessageSend[0].m_bDLC := 8;
|
||||||
|
ArrCanMessageSend[0].m_bData[5] := mess.Mask shl 5;
|
||||||
|
ArrCanMessageSend[0].m_bData[6] := LB(mess.Addr);
|
||||||
|
ArrCanMessageSend[0].m_bData[8] := LB(mess.Data[0]);
|
||||||
|
ArrCanMessageSend[0].m_bData[7] := HB(mess.Data[0]);
|
||||||
|
ArrCanMessageSend[0].m_bData[2] := LB(mess.Data[1]);
|
||||||
|
ArrCanMessageSend[0].m_bData[1] := HB(mess.Data[1]);
|
||||||
|
ArrCanMessageSend[0].m_bData[4] := LB(mess.Data[2]);
|
||||||
|
ArrCanMessageSend[0].m_bData[3] := HB(mess.Data[2]);
|
||||||
|
end;
|
||||||
|
|
||||||
ArrCanMessageSend[0].m_bData[5] := mess.Mask shl 5;
|
WriteMessageCanID(1, CanStr);
|
||||||
ArrCanMessageSend[0].m_bData[6] := LB(mess.Addr);
|
|
||||||
|
|
||||||
ArrCanMessageSend[0].m_bData[8] := LB(mess.Data[0]);
|
|
||||||
ArrCanMessageSend[0].m_bData[7] := HB(mess.Data[0]);
|
|
||||||
|
|
||||||
ArrCanMessageSend[0].m_bData[2] := LB(mess.Data[1]);
|
|
||||||
ArrCanMessageSend[0].m_bData[1] := HB(mess.Data[1]);
|
|
||||||
|
|
||||||
ArrCanMessageSend[0].m_bData[4] := LB(mess.Data[2]);
|
|
||||||
ArrCanMessageSend[0].m_bData[3] := HB(mess.Data[2]);
|
|
||||||
|
|
||||||
WriteMessageCanID(1, CanStr);
|
|
||||||
|
|
||||||
ReceiveCanData(mess);
|
ReceiveCanData(mess,Numer);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1018,7 +999,7 @@ begin
|
|||||||
NameEdit.setfocus;
|
NameEdit.setfocus;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TModbusForm.ReceiveCanData(Mess: TMessag);
|
procedure TModbusForm.ReceiveCanData(Mess: TMessag; dev:integer);
|
||||||
var
|
var
|
||||||
Ananum, Diginum, Boxnum: integer;
|
Ananum, Diginum, Boxnum: integer;
|
||||||
i, j, byte: integer;
|
i, j, byte: integer;
|
||||||
@ -1239,15 +1220,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure TModbusForm.AutoTimeEditChange(Sender: TObject);
|
procedure TModbusForm.AutoTimeEditChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if trunc(AutoTimeEdit.Value) = 0
|
Auto:=trunc(AutoTimeEdit.Value);
|
||||||
|
if Auto = 0
|
||||||
then AutoBox.Checked:= false;
|
then AutoBox.Checked:= false;
|
||||||
|
|
||||||
AutoBox.Tag:= trunc(AutoTimeEdit.Value);
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
BIN
dbrtl70.bpl
Normal file
BIN
dbrtl70.bpl
Normal file
Binary file not shown.
87
proj copy.ini
Normal file
87
proj copy.ini
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[Projects]
|
||||||
|
ProjectQua=3
|
||||||
|
ProjectNum=1
|
||||||
|
Project1=Áóęńčđ
|
||||||
|
Project2=ŃÝÄÁĚ
|
||||||
|
Project2=Ëĺäîęîë
|
||||||
|
|
||||||
|
|
||||||
|
[Áóęńčđ]
|
||||||
|
BaseAdr=$00318200
|
||||||
|
Use_0=1
|
||||||
|
Use_1=1
|
||||||
|
Use_2=1
|
||||||
|
Use_3=1
|
||||||
|
RSadr_0=1
|
||||||
|
RSadr_1=2
|
||||||
|
RSadr_2=3
|
||||||
|
RSadr_3=4
|
||||||
|
Name_0=ÓĘŃŃ ŃÁ
|
||||||
|
Name_1=ÁĘŃŃ ĂÄ
|
||||||
|
Name_2=ÓĘŃÂÝĎ
|
||||||
|
Name_3=Çŕäŕň÷čę
|
||||||
|
|
||||||
|
|
||||||
|
[ŃÝÄÁĚ]
|
||||||
|
BaseAdr=$1051020
|
||||||
|
Use_0=1
|
||||||
|
Use_1=1
|
||||||
|
Use_2=1
|
||||||
|
Use_3=1
|
||||||
|
Use_4=1
|
||||||
|
Use_5=1
|
||||||
|
Use_6=1
|
||||||
|
Use_8=1
|
||||||
|
Use_9=1
|
||||||
|
Use_10=1
|
||||||
|
Use_11=1
|
||||||
|
Use_12=1
|
||||||
|
Use_13=1
|
||||||
|
Use_14=1
|
||||||
|
Use_15=1
|
||||||
|
Name_0=ÓĘŃŃ ŃĘ1 ŃÁ1
|
||||||
|
Name_1=ÓĘŃŃ ŃĘ2 ŃÁ1
|
||||||
|
Name_2=ÓĘŃŃ ŃĘ3 ŃÁ1
|
||||||
|
Name_3=ÓĘŃŃ ŃĘ4 ŃÁ1
|
||||||
|
Name_4=ÓĘŃŃÂÝĎ ŃÁ1
|
||||||
|
Name_5=Çŕäŕň÷čę ŃÁ1
|
||||||
|
Name_6=ÁŇĐ ČŇÝŃ
|
||||||
|
Name_8=ÓĘŃŃ ŃĘ1 ŃÁ2
|
||||||
|
Name_9=ÓĘŃŃ ŃĘ2 ŃÁ2
|
||||||
|
Name_10=ÓĘŃŃ ŃĘ3 ŃÁ2
|
||||||
|
Name_11=ÓĘŃŃ ŃĘ4 ŃÁ2
|
||||||
|
Name_12=ÓĘŃŃÂÝĎ ŃÁ2
|
||||||
|
Name_13=Çŕäŕň÷čę ŃÁ2
|
||||||
|
Name_14=ÓĘŃŃ ÁÎČÍ
|
||||||
|
Name_15=ÓĘŃÂÝĎ ÁÎČÍ
|
||||||
|
|
||||||
|
[Ëĺäîęîë]
|
||||||
|
BaseAdr=$01CE000
|
||||||
|
Use_0=1
|
||||||
|
Use_1=1
|
||||||
|
Use_2=1
|
||||||
|
Use_3=1
|
||||||
|
Use_4=1
|
||||||
|
Use_5=1
|
||||||
|
Use_6=1
|
||||||
|
Use_8=1
|
||||||
|
Use_9=1
|
||||||
|
Use_10=1
|
||||||
|
Use_11=1
|
||||||
|
Name_0=ÓĘŃŃ ÁÂ1 Ď×1
|
||||||
|
Name_1=ÓĘŃŃ ÁÂ1 Ď×2
|
||||||
|
Name_2=ÓĘŃŃ ÁÂ1 Ď×1
|
||||||
|
Name_3=ÓĘŃŃ ÁÂ2 Ď×2
|
||||||
|
Name_4=ÓĘŃŃ ÁČ1 Ď×1
|
||||||
|
Name_5=ÓĘŃŃ ÁČ1 Ď×2
|
||||||
|
Name_6=ÓĘŃŃ ÁČ2 Ď×1
|
||||||
|
Name_8=ÓĘŃŃ ÁČ2 Ď×2
|
||||||
|
Name_9=ÓĘŃŃÂÝĎ1 Ď×1
|
||||||
|
Name_10=ÓĘŃŃÂÝĎ1 Ď×2
|
||||||
|
Name_11=ÓĘŃŃÂÝĎ2 Ď×1
|
||||||
|
Name_12=ÓĘŃŃÂÝĎ2 Ď×2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
vcldb70.bpl
Normal file
BIN
vcldb70.bpl
Normal file
Binary file not shown.
BIN
vcldbx70.bpl
Normal file
BIN
vcldbx70.bpl
Normal file
Binary file not shown.
BIN
vclsmp70.bpl
Normal file
BIN
vclsmp70.bpl
Normal file
Binary file not shown.
BIN
vclx70.bpl
Normal file
BIN
vclx70.bpl
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user