Широковещательные сообщения (broad cast)

This commit is contained in:
Dimas 2025-06-11 17:25:19 +03:00
parent 8afa7b0ec6
commit 3ba8b59095
21 changed files with 254 additions and 175 deletions

BIN
AsyncPro_D2007.bpl Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +1,8 @@
object CANTerminal: TCANTerminal
Left = 992
Left = 100
Top = 100
Width = 801
Height = 538
Height = 600
Caption = 'CANTerminal "Hunderitter" v.07.04.2025'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
@ -36,13 +36,14 @@ object CANTerminal: TCANTerminal
000380800003C000000FC000000FF000001FF000001FF80000FFF80000FFF800
00FFFC0001FFFC0001FFFF800FFFFF800FFFFF800FFFFF800FFFFFFFFFFF}
OldCreateOrder = False
Visible = True
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object RxLabel1: TRxLabel
Left = 245
Top = 440
Left = 429
Top = 464
Width = 39
Height = 13
Caption = 'CAN on'
@ -63,7 +64,7 @@ object CANTerminal: TCANTerminal
Left = 10
Top = 48
Width = 765
Height = 337
Height = 355
Caption = ' '#1055#1088#1086#1077#1082#1090' '
TabOrder = 1
object Label1: TLabel
@ -139,16 +140,16 @@ object CANTerminal: TCANTerminal
end
object Memo1: TMemo
Left = 10
Top = 390
Width = 225
Height = 100
Top = 410
Width = 400
Height = 140
Lines.Strings = (
'')
TabOrder = 2
end
object CANswitch: TRxSwitch
Left = 248
Top = 390
Left = 432
Top = 410
Width = 33
Height = 49
Caption = 'CANswitch'
@ -156,8 +157,8 @@ object CANTerminal: TCANTerminal
OnClick = CANswitchClick
end
object GroupBox1: TGroupBox
Left = 472
Top = 400
Left = 672
Top = 448
Width = 273
Height = 169
Caption = 'UART'
@ -288,24 +289,24 @@ object CANTerminal: TCANTerminal
end
end
object RadioGroup1: TRadioGroup
Left = 296
Top = 390
Left = 480
Top = 410
Width = 73
Height = 65
Caption = ' Can Speed '
TabOrder = 5
end
object Button125: TRadioButton
Left = 304
Top = 408
Left = 487
Top = 427
Width = 50
Height = 17
Caption = '125K'
TabOrder = 6
end
object Button250: TRadioButton
Left = 304
Top = 432
Left = 487
Top = 451
Width = 50
Height = 17
Caption = '250K'

View File

@ -95,7 +95,8 @@ type
BaseAdr: longword;
PlusAdr: integer;
CommAdr: longword;
UKSS: array[0..15] of TUKSS;
UKSS: array[0..16] of TUKSS;
Name: string;
DigiButNames: array[0..16] of string;
DigiButNameChange: boolean;
@ -122,7 +123,6 @@ type
ProjectQua : integer = 0;
ProjectNum : integer = 0;
Boxx : Tboxx;
const
@ -146,21 +146,21 @@ begin
Project.Bars.Name := TPanel.Create(self);
Project.Bars.Name.Parent := GroupBox;
Project.Bars.Name.Left :=10;
Project.Bars.Name.Top :=15;
Project.Bars.Name.Width :=100;
Project.Bars.Name.Top :=15;
Project.Bars.Name.Width :=100;
Project.Bars.Name.Height := 30;
Project.Bars.BaseAdr := TPanel.Create(self);
Project.Bars.BaseAdr.Parent := GroupBox;
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.Height := 30;
Project.Bars.CommAdr := TPanel.Create(self);
Project.Bars.CommAdr.Parent := GroupBox;
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.Height := 30;
@ -169,14 +169,14 @@ begin
Label1.Top := Project.Bars.Name.Top + Project.Bars.Name.Height + tab*3;
Label2.Top := Label1.Top; Label3.Top := Label1.Top; Label4.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
begin
for i:= 0 to 16 do
begin
hei := 25;
top := Label1.Top + Label1.Height + tab + (hei+tab)*(i mod 8);
lef := 10 + (i div 8)*(lev);
top := Label1.Top + Label1.Height + tab + (hei+tab)*((i mod 8)+8*(i div 16));
lef := 10 + ((i div 8) and 1)*(lev);
wid := hei;
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.Height := hei;
Project.UKSS[i].Bar.Go.Left :=lef;
Project.UKSS[i].Bar.Go.Top :=top;
Project.UKSS[i].Bar.Go.Caption :='S';
Project.UKSS[i].Bar.Go.Top :=top;
Project.UKSS[i].Bar.Go.Caption :='S';
Project.UKSS[i].Bar.Go.Font.Style:=[fsBold];
Project.UKSS[i].Bar.Go.Tag := i;
Project.UKSS[i].Bar.Go.OnClick := ShoWinClick;
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))+'\';
@ -281,7 +281,7 @@ begin
then Project.Bars.CommAdr.Caption := ''
else Project.Bars.CommAdr.Caption := '0x'+inttohex(Project.CommAdr,8);
for i:=0 to 15 do
for i:=0 to 16 do
begin
Project.UKSS[i].Bar.RXadr.Tag:=0;
Project.UKSS[i].Bar.TXadr.Tag:=0;
@ -332,7 +332,7 @@ begin
begin
Project.BaseAdr := 0;
Project.PlusAdr := 1 shl 28;
left:=24;
left:=20;
end else begin
Project.BaseAdr := Inifile.ReadInteger(ProjID,'BaseAdr',0);
Project.PlusAdr := Inifile.ReadInteger(ProjID,'PlusAdr',16);
@ -342,7 +342,7 @@ begin
Project.CommAdr := Inifile.ReadInteger(ProjID,'CommAdr',0);
adr:=-1;
for i:=0 to 15 do
for i:=0 to 16 do
begin
nom := 'Use_'+inttostr(i);
@ -417,7 +417,7 @@ begin
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;
if boxx.qua = 0 then
@ -469,7 +469,8 @@ begin
end
end;
for i:=0 to 15 do
for i:=0 to 16 do
begin
if Project.UKSS[i].Use then
begin
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].Exist then
Project.UKSS[i].Wind.ReceiveCanData(mess);
Project.UKSS[i].Wind.ReceiveCanData(mess,i);
end
end
end
end;
newstring:='';
@ -542,7 +544,7 @@ begin
end;
if CANswitch.StateOn then
for i:=0 to 15 do
for i:=0 to 16 do
if Project.UKSS[i].Use then
begin
if Project.UKSS[i].Bar.RXadr.Tag = 0
@ -581,7 +583,7 @@ begin
CloseSlavna();
CanTimer.Enabled:=false;
boxx.qua := 0;
for i:=0 to 15 do
for i:=0 to 16 do
begin
Project.UKSS[i].Bar.RXadr.Color := clBtnFace;
Project.UKSS[i].Bar.TXadr.Color := clBtnFace;
@ -643,7 +645,7 @@ var i : integer;
nom, num: string;
begin
for i:=0 to 15 do
for i:=0 to 16 do
if Project.UKSS[i].Exist then
begin
Project.UKSS[i].Wind.Close;

View File

@ -1,6 +1,6 @@
[Projects]
ProjectQua=9
ProjectNum=6
ProjectNum=7
Project1=Áóêñèð
Project2=ÑÝÄÁÌ
Project3=Ëåäîêîë
@ -340,8 +340,7 @@ DigiBut_15=Reset
DigiBut_16=Nothing at all
[23550.2]
BaseAdr=$00235500
PlusAdr=$10
Protokol=3
Use_0=1
Use_1=1
Use_2=1
@ -351,6 +350,7 @@ Use_5=1
Use_11=1
Use_12=1
Use_13=1
Use_16=1
CANadr_0=0
CANadr_1=1
CANadr_2=2
@ -360,6 +360,7 @@ CANadr_5=8
CANadr_11=5
CANadr_12=7
CANadr_13=9
CANadr_16=$1f
RSadr_0=1
RSadr_1=2
RSadr_2=3
@ -378,6 +379,7 @@ Name_5=
Name_11=ÓÊÑÑ ÑÈ ÑÁ2
Name_12=ÓÊÑÑ ÑÂÔ ÑÁ2
Name_13=ÓÊÑÂÝÏ ÑÁ2
Name_16=BroadCast
DigiBut_0=Test
DigiBut_1=Def
DigiBut_2=Save

View File

@ -12,7 +12,7 @@
-$L+
-$M-
-$N+
-$O+
-$O-
-$P+
-$Q-
-$R-

View File

@ -15,7 +15,7 @@ K=0
L=1
M=0
N=1
O=1
O=0
P=1
Q=0
R=0

Binary file not shown.

10
Terminal.ini Normal file
View 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

Binary file not shown.

Binary file not shown.

View File

@ -125,22 +125,22 @@ type
procedure Renamido(Sender: TObject; var Key: Char);
procedure SaveProjectComms(ProjID: string);
procedure ReceiveCanData(Mess: TMessag);
procedure DataLenEditChange(Sender: TObject);
procedure DataGridKeyPress(Sender: TObject; var Key: Char);
procedure DataGridSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
procedure DataGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DataGridSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure DataGridGetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: String);
procedure AutoTimeEditChange(Sender: TObject);
procedure DataLenEditChange(Sender: TObject);
procedure DataGridKeyPress(Sender: TObject; var Key: Char);
procedure DataGridSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
procedure DataGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DataGridSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure DataGridGetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: String);
procedure AutoTimeEditChange(Sender: TObject);
private
{ Private declarations }
Unites : Array[0..127] of TUnit;
Anapan : Array[0..63] of TPanel;
Digipan : Array[0..511] of Tpanel;
Digibox : Array[0..15] of TCheckBox;
@ -151,18 +151,54 @@ type
DigiLab: Array[0..31] of TLabel;
AnaLab: Array[0..7] of TLabel;
kownt: integer;
waiste: integer;
fade: cardinal;
auto: cardinal;
reColor: integer;
doReColor: boolean;
AnalogStart : Integer;
AnalogLength : Integer;
DigitalStart : 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;
waiste: integer;
fade: integer;
reColor: integer;
doReColor: boolean;
{ InsideFUst : boolean = False;
InsideSet : boolean = False;
InsideComm : boolean = False;
}
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
@ -172,51 +208,15 @@ type
TXadr: longword;
Protokol: integer;
procedure ReceiveCanData(Mess: TMessag; dev:integer);
{ Public declarations }
end;
var
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
@ -253,10 +253,10 @@ end;
procedure TModbusForm.Memo1Change(Sender: TObject);
var
i : Integer;
i : Integer;
begin
i:=Memo1.Lines.Count;
if i>100 then Memo1.Clear;
i:=Memo1.Lines.Count;
if i>100 then Memo1.Clear;
end;
{
procedure TModbusForm.btnAnalogClick(Sender: TObject);
@ -297,7 +297,7 @@ end;
procedure TModbusForm.FormCreate(Sender: TObject);
var i: integer;
inifile : TIniFile;
inifile : TIniFile;
nom,num: string;
begin
@ -452,62 +452,34 @@ begin
Bitbut[i].OnClick:=BitButClick;
end;
inifile := TIniFile.Create(PathExe+'Terminal.ini');
{ inifile := TIniFile.Create(PathExe+'Terminal.ini');
ProjectQua := strtoint(Inifile.ReadString('Projects','ProjectQua','0'));
ProjectNum := strtoint(Inifile.ReadString('Projects','ProjectNum','0'));
inifile.Free;
}
FadeSpinChange(Sender);
end;
procedure TModbusForm.myTimerTimer(Sender: TObject);
var
i : integer;
doIt: boolean;
var i : integer;
begin
if(AutoBox.Checked) then
if(AutoTimeEdit.Value > 0) then
begin
if(AutoBox.Tag > 0) then AutoBox.Tag:= AutoBox.Tag-1;
if(GetTickCount - RecolorMoment)>(Fade * 1000 / (clGrad-1))
then begin doReColor := true; RecolorMoment:= GetTickCount end;
if(AutoBox.Tag = 0) 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
if doReColor then
for i:= 0 to 127 do
if Unites[i].Age > 0 then
begin
dec(Unites[i].Age);
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 Unites[i].Age <0 then Unites[i].Age:=0; // áûâàåò
if (i>= AnalogStart)
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)
and(i< DigitalStart + DigitalLength)
@ -517,7 +489,12 @@ begin
doReColor:=false;
end;
if(AutoBox.Checked) then
if(GetTickCount - AutoMoment)>(myTimer.Interval*Auto)
then begin
SetButtonDo(Sender);
AutoMoment:= GetTickCount;
end;
end;
@ -528,8 +505,14 @@ var
begin
if Protokol=3 then DataLenEdit.MaxValue:=4
else DataLenEdit.MaxValue :=3;
myTimer.Enabled:=True;
AutoMoment:= GetTickCount;
RecolorMoment:= GetTickCount;
AnalogStart := trunc(AnaStart.Value);
DigitalStart:= trunc(DigiStart.Value);
AnalogLength:= trunc(AnaLen.Value);
@ -543,9 +526,7 @@ begin
AnaStartChange(Sender);
DigiStartChange(Sender);
FadeSpinChange(Sender);
if Protokol=3 then DataLenEdit.MaxValue:=4
else DataLenEdit.MaxValue :=3;
AutoTimeEditChange(Sender);
DataLenEditChange(Sender);
BitBut[0].Checked:=true;
@ -581,10 +562,6 @@ begin
exit;
end;
if (what=0)
then Memo1.Lines.Add('Ok!')
else Memo1.Lines.Add('Well...');
inc(Count2);
If what=0 then
begin
@ -761,7 +738,7 @@ begin
WriteMessageCanID(1, CanStr);
ReceiveCanData(mess);
ReceiveCanData(mess,Numer);
end;
@ -792,24 +769,28 @@ begin
mess.Data[2] := 0;
mess.Surs := 1;
ArrCanMessageSend[0].m_dwID := RXadr;
ArrCanMessageSend[0].m_bDLC := 8;
if Protokol=3 then
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;
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);
WriteMessageCanID(1, CanStr);
ReceiveCanData(mess);
ReceiveCanData(mess,Numer);
end;
@ -1018,7 +999,7 @@ begin
NameEdit.setfocus;
end;
procedure TModbusForm.ReceiveCanData(Mess: TMessag);
procedure TModbusForm.ReceiveCanData(Mess: TMessag; dev:integer);
var
Ananum, Diginum, Boxnum: integer;
i, j, byte: integer;
@ -1239,15 +1220,11 @@ begin
end;
end;
procedure TModbusForm.AutoTimeEditChange(Sender: TObject);
begin
if trunc(AutoTimeEdit.Value) = 0
Auto:=trunc(AutoTimeEdit.Value);
if Auto = 0
then AutoBox.Checked:= false;
AutoBox.Tag:= trunc(AutoTimeEdit.Value);
end;
end.

BIN
dbrtl70.bpl Normal file

Binary file not shown.

87
proj copy.ini Normal file
View 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
rtl70.bpl Normal file

Binary file not shown.

BIN
tee70.bpl Normal file

Binary file not shown.

BIN
vcl70.bpl Normal file

Binary file not shown.

BIN
vcldb70.bpl Normal file

Binary file not shown.

BIN
vcldbx70.bpl Normal file

Binary file not shown.

BIN
vclsmp70.bpl Normal file

Binary file not shown.

BIN
vclx70.bpl Normal file

Binary file not shown.