Широковещательные сообщения (broad cast)
This commit is contained in:
Binary file not shown.
Binary file not shown.
+19
-18
@@ -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'
|
||||||
|
|||||||
+27
-25
@@ -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;
|
||||||
|
|||||||
+5
-3
@@ -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.
@@ -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
Binary file not shown.
BIN
Binary file not shown.
+104
-127
@@ -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
Binary file not shown.
@@ -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
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user