Рефераты. Віртуальний вимірювальний комплекс на базі учбового лабораторного стенду EV 8031

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure BitBtn1Click(Sender: TObject);

procedure SerialPortNG1RxClusterEvent(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure MaskEdit2Change(Sender: TObject);

private

{ Private declarations }

scale:word;

dwError:dword;

pName:PWideChar;

flag:byte;

function StrToIntM(str:string):dword;

public

{ Public declarations }

end;

TArrBuf512 = array[0..511] of byte;

Var Form1: TForm1;

implementation

uses SerialNGBasic;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var

i:word;

s:string;

begin

SerialPortNG1.Active := True;

scale := 500;

ScrollBar1.Visible := False;

Chart1.BottomAxis.Minimum := 0;

Chart1.BottomAxis.Maximum := scale;

Series1.Clear;

Series2.Clear;

Series3.Clear;

Series4.Clear;

Series5.Clear;

Series6.Clear;

Series7.Clear;

Series8.Clear;

for i := 0 to 500 do

begin

Series1.AddXY(i, ((i mod 1)*0.5)+0.25, '', ColorBox1.Selected);

Series2.AddXY(i, ((i mod 2)*0.5)+1.25, '', ColorBox2.Selected);

Series3.AddXY(i, ((i mod 2)*0.5)+2.25, '', ColorBox3.Selected);

Series4.AddXY(i, ((i mod 2)*0.5)+3.25, '', ColorBox4.Selected);

Series5.AddXY(i, ((i mod 2)*0.5)+4.25, '', ColorBox5.Selected);

Series6.AddXY(i, ((i mod 2)*0.5)+5.25, '', ColorBox6.Selected);

Series7.AddXY(i, ((i mod 2)*0.5)+6.25, '', ColorBox7.Selected);

Series8.AddXY(i, ((i mod 2)*0.5)+7.25, '', ColorBox8.Selected);

end;

end;

procedure TForm1.ScrollChange(Sender: TObject);

begin

Chart1.BottomAxis.Minimum := ScrollBar1.Position;

Chart1.BottomAxis.Maximum := ScrollBar1.Position + scale;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

if (scale < 500) then

scale := scale + 10;

if (scale = 500) then

ScrollBar1.Visible := False

else

ScrollBar1.Visible := True;

ScrollBar1.Max := 500 - scale;

if (ScrollBar1.Position > (500 - scale)) then

ScrollBar1.Position := (500 - scale);

Chart1.BottomAxis.Minimum := ScrollBar1.Position;

Chart1.BottomAxis.Maximum := ScrollBar1.Position + scale;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

if (scale > 0) then

scale := scale - 10;

if (scale = 500) then

ScrollBar1.Visible := False

else

ScrollBar1.Visible := True;

ScrollBar1.Max := 500 - scale;

Chart1.BottomAxis.Minimum := ScrollBar1.Position;

Chart1.BottomAxis.Maximum := ScrollBar1.Position + scale;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

SerialPortNG1.Active := False;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

s:string;

begin

if (ComboBox2.ItemIndex <> -1) and (ComboBox1.ItemIndex <> -1) then

begin

s := ' ';

s[1] := char($FF);

s[2] := char($AA);

s[3] := char($3A);

s[4] := char((((ComboBox1.ItemIndex shl 1) or byte(RadioButton2.Checked))or (ComboBox2.ItemIndex shl 5)));

SerialPortNG1.SendString(s);

flag := 1;

end

else

MessageBox(0, 'Необходимо указать номер пускового канала и выбрать тактовый генератор!', 'Ошибка', MB_OK or MB_ICONINFORMATION);

end;

procedure TForm1.SerialPortNG1RxClusterEvent(

Sender: TObject);

var

i:integer;

n:integer;

p:^TArrBuf512;

size:integer;

error:DWord;

begin

n := SerialPortNG1.NextClusterSize;

if n >= 0 then

begin

p := SerialPortNG1.ReadNextCluster(size, error);

if (flag=1) then

begin

Series1.Clear;

Series2.Clear;

Series3.Clear;

Series4.Clear;

Series5.Clear;

Series6.Clear;

Series7.Clear;

Series8.Clear;

for i := 0 to n do

begin

Series8.AddXY(i, -(((p^[i] shr 7) and 1)*0.5)+7.75, '', ColorBox8.Selected);

Series7.AddXY(i, -(((p^[i] shr 6) and 1)*0.5)+6.75, '', ColorBox7.Selected);

Series6.AddXY(i, -(((p^[i] shr 5) and 1)*0.5)+5.75, '', ColorBox6.Selected);

Series5.AddXY(i, -(((p^[i] shr 4) and 1)*0.5)+4.75, '', ColorBox5.Selected);

Series4.AddXY(i, -(((p^[i] shr 3) and 1)*0.5)+3.75, '', ColorBox4.Selected);

Series3.AddXY(i, -(((p^[i] shr 2) and 1)*0.5)+2.75, '', ColorBox3.Selected);

Series2.AddXY(i, -(((p^[i] shr 1) and 1)*0.5)+1.75, '', ColorBox2.Selected);

Series1.AddXY(i, -(( p^[i] and 1)*0.5)+0.75, '', ColorBox1.Selected);

end;

flag := 0;

end;

end;

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

begin

Edit1.Text := IntToStr(TrackBar1.Position);

end;

procedure TForm1.ComboBox2Change(Sender: TObject);

begin

if ComboBox2.ItemIndex = 7 then

begin

MaskEdit1.Visible := true;

Label3.Visible := true;

MaskEdit1.Text := '';

end

else

begin

MaskEdit1.Visible := False;

Label3.Visible := false;

end;

end;

procedure TForm1.MaskEdit2Change(Sender: TObject);

begin

if MaskEdit2.Text <> '' then

if StrToIntM(MaskEdit2.Text) > 65535 then

MaskEdit2.Text := '65535';

end;

function TForm1.StrToIntM(str:string):dword;

var

i,num:integer;

begin

num := 0;

if (length(str) > 0) and (length(str) < 6) then

for i := length(str) downto 1 do

if ((str[i] >= '0')and(str[i] <= '9')) then

begin

num := num +

(byte(str[i])-byte('0'))*

Round(Power(10,length(str)-i));

end;

StrToIntM := num;

end;

end.

2 Тексти програмного модуля генератора слів, Unit2.pas

Ім'я данного файлу : Unit2.pas

Функціональне призначення : програмне забеспечення ПК, модуль генератора слів

Файл створений для дипломного проекта захисту кваліфікації фахівця

За фахом : Системне програмування;

Тема проекту : Віртуальний вимірювальний комплекс на базі учбового лабораторного стенду;

Керівник : М.В. Скородєлов, викладач кафедри ОТП;

Розробник : О.О. Ісмаілов, студент групи КІТ-23а;

Рік розробки : 2009.

unit Unit2;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, Mask;

type TForm2 = class(TForm)

ListBox1: TListBox;

RadioGroup1: TRadioGroup;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

CheckBox1: TCheckBox;

Label1: TLabel;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

ComboBox1: TComboBox;

Label5: TLabel;

Label6: TLabel;

MaskEdit1: TMaskEdit;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.