Разработка компьютерного измерительного комплекса вагона-лаборатории железнодорожной автоматики, телемеханики и связи

Виды и интерфейсы измерительных информационных систем. Принципы функционирования автоматической локомотивной сигнализации и системы "Контроль". Разработка программного обеспечения для обработки информации о работе устройств сигнализации и рельсовых цепей.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 30.05.2013
Размер файла 1011,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

TEdit *MaxIntY;

TEdit *MinIntG;

TEdit *MaxIntG;

void __fastcall DBGrid1CellClick(TColumn *Column);

void __fastcall DBGrid1Enter(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

void __fastcall Button3Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TKPTForm(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TKPTForm *KPTForm;

//---------------------------------------------------------------------------

#endif

Файл :KPT.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "KPT.h"

#include "DataModule.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TKPTForm *KPTForm;

//---------------------------------------------------------------------------

__fastcall TKPTForm::TKPTForm(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TKPTForm::DBGrid1CellClick(TColumn *Column)

{

NumKPT->Text = DM->KPTTable->FieldByName("NumKPT")->AsString;

NameKPT->Text = DM->KPTTable->FieldByName("NameKPT")->Value;

MinRY->Text = DM->KPTTable->FieldByName("MinRY")->Value;

MaxRY->Text = DM->KPTTable->FieldByName("MaxRY")->Value;

MinY->Text = DM->KPTTable->FieldByName("MinY")->Value;

MaxY->Text = DM->KPTTable->FieldByName("MaxY")->Value;

MinG->Text = DM->KPTTable->FieldByName("MinG")->Value;

MaxG->Text = DM->KPTTable->FieldByName("MaxG")->Value;

MinIntY->Text = DM->KPTTable->FieldByName("MinIntY")->Value;

MaxIntY->Text = DM->KPTTable->FieldByName("MaxIntY")->Value;

MinIntG->Text = DM->KPTTable->FieldByName("MinIntG")->Value;

MaxIntG->Text = DM->KPTTable->FieldByName("MaxIntG")->Value;

}

//---------------------------------------------------------------------------

void __fastcall TKPTForm::DBGrid1Enter(TObject *Sender)

{

NumKPT->Text = DM->KPTTable->FieldByName("NumKPT")->AsString;

NameKPT->Text = DM->KPTTable->FieldByName("NameKPT")->Value;

MinRY->Text = DM->KPTTable->FieldByName("MinRY")->Value;

MaxRY->Text = DM->KPTTable->FieldByName("MaxRY")->Value;

MinY->Text = DM->KPTTable->FieldByName("MinY")->Value;

MaxY->Text = DM->KPTTable->FieldByName("MaxY")->Value;

MinG->Text = DM->KPTTable->FieldByName("MinG")->Value;

MaxG->Text = DM->KPTTable->FieldByName("MaxG")->Value;

MinIntY->Text = DM->KPTTable->FieldByName("MinIntY")->Value;

MaxIntY->Text = DM->KPTTable->FieldByName("MaxIntY")->Value;

MinIntG->Text = DM->KPTTable->FieldByName("MinIntG")->Value;

MaxIntG->Text = DM->KPTTable->FieldByName("MaxIntG")->Value;

}

//---------------------------------------------------------------------------

void __fastcall TKPTForm::Button1Click(TObject *Sender)

{

DM->KPTTable->Edit();

DM->KPTTable->Append();

DM->KPTTable->FieldByName("NumKPT")->Value = NumKPT->Text;

DM->KPTTable->FieldByName("NameKPT")->Value = NameKPT->Text;

DM->KPTTable->FieldByName("MinRY")->Value = MinRY->Text;

DM->KPTTable->FieldByName("MaxRY")->Value = MaxRY->Text;

DM->KPTTable->FieldByName("MinY")->Value = MinY->Text;

DM->KPTTable->FieldByName("MaxY")->Value = MaxY->Text;

DM->KPTTable->FieldByName("MinG")->Value = MinG->Text;

DM->KPTTable->FieldByName("MaxG")->Value = MaxG->Text;

DM->KPTTable->FieldByName("MinIntY")->Value = MinIntY->Text;

DM->KPTTable->FieldByName("MaxIntY")->Value = MaxIntY->Text;

DM->KPTTable->FieldByName("MinIntG")->Value = MinIntG->Text;

DM->KPTTable->FieldByName("MaxIntG")->Value = MaxIntG->Text;

}

//---------------------------------------------------------------------------

void __fastcall TKPTForm::Button2Click(TObject *Sender)

{

DM->KPTTable->Delete();

DBGrid1Enter(this);

}

//---------------------------------------------------------------------------

void __fastcall TKPTForm::Button3Click(TObject *Sender)

{

DM->KPTTable->Edit();

DM->KPTTable->FieldByName("NumKPT")->Value = NumKPT->Text;

DM->KPTTable->FieldByName("NameKPT")->Value = NameKPT->Text;

DM->KPTTable->FieldByName("MinRY")->Value = MinRY->Text;

DM->KPTTable->FieldByName("MaxRY")->Value = MaxRY->Text;

DM->KPTTable->FieldByName("MinY")->Value = MinY->Text;

DM->KPTTable->FieldByName("MaxY")->Value = MaxY->Text;

DM->KPTTable->FieldByName("MinG")->Value = MinG->Text;

DM->KPTTable->FieldByName("MaxG")->Value = MaxG->Text;

DM->KPTTable->FieldByName("MinIntY")->Value = MinIntY->Text;

DM->KPTTable->FieldByName("MaxIntY")->Value = MaxIntY->Text;

DM->KPTTable->FieldByName("MinIntG")->Value = MinIntG->Text;

DM->KPTTable->FieldByName("MaxIntG")->Value = MaxIntG->Text;

}

//---------------------------------------------------------------------------

Файл :DataModule.h

//---------------------------------------------------------------------------

#ifndef DataModuleH

#define DataModuleH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Db.hpp>

#include <DBTables.hpp>

//---------------------------------------------------------------------------

class TDM : public TDataModule

{

__published: // IDE-managed Components

TTable *FrictSitesTable;

TSmallintField *FrictSitesTableNumFrictSite;

TStringField *FrictSitesTableNameFrictSite;

TDataSource *DSFrictSites;

TTable *SitesTable;

TSmallintField *SitesTableNumSite;

TStringField *SitesTableNameSite;

TDataSource *DSSites;

TTable *RCTable;

TDataSource *DSRC;

TSmallintField *RCTableNumSite;

TSmallintField *RCTableNumFrictSite;

TSmallintField *RCTableNumJunction;

TStringField *RCTableNameSignal;

TSmallintField *RCTableNumTranslation;

TSmallintField *FrictSitesTableNumSite;

TTable *KPTTable;

TDataSource *DSKPT;

TSmallintField *KPTTableNumKPT;

TStringField *KPTTableNameKPT;

TFloatField *KPTTableMinRY;

TFloatField *KPTTableMaxRY;

TFloatField *KPTTableMinY;

TFloatField *KPTTableMaxY;

TFloatField *KPTTableMinG;

TFloatField *KPTTableMaxG;

TFloatField *KPTTableMinIntY;

TFloatField *KPTTableMaxIntY;

TFloatField *KPTTableMinIntG;

TFloatField *KPTTableMaxIntG;

TSmallintField *RCTableNumKPT;

TStringField *RCTableKPT;

TDataSource *DSReport;

TTable *ReportTable;

TDateField *ReportTableDate;

TTimeField *ReportTableTime;

TStringField *ReportTableNameSite;

TStringField *ReportTableNameFrictSite;

TSmallintField *ReportTableNumJunction;

TStringField *ReportTableNameSignal;

TSmallintField *ReportTableNumTranslation;

TSmallintField *ReportTableRCLength;

TFloatField *ReportTableIBeg;

TFloatField *ReportTableIEnd;

TStringField *ReportTableCode;

TFloatField *ReportTableImp1;

TFloatField *ReportTableInt1;

TFloatField *ReportTableImp2;

TFloatField *ReportTableInt2;

TFloatField *ReportTableImp3;

TFloatField *ReportTableInt3;

TFloatField *ReportTableCycle;

TSmallintField *ReportTableVelocity;

TStringField *ReportTableNamKPT;

TStringField *ReportTableComments;

private: // User declarations

public: // User declarations

__fastcall TDM(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TDM *DM;

//---------------------------------------------------------------------------

#endif

Файл :DataModule.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "DataModule.h"

#include "RCs.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TDM *DM;

//---------------------------------------------------------------------------

__fastcall TDM::TDM(TComponent* Owner)

: TDataModule(Owner)

{

}

//---------------------------------------------------------------------------

Файл :RC.h

//---------------------------------------------------------------------------

#ifndef RCH

#define RCH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Db.hpp>

#include <DBGrids.hpp>

#include <DBTables.hpp>

#include <Grids.hpp>

#include <Menus.hpp>

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------

class TMainForm : public TForm

{

__published: // IDE-managed Components

TMainMenu *MainMenu1;

TMenuItem *N1;

TMenuItem *N2;

TMenuItem *N3;

TMenuItem *N4;

TMenuItem *N5;

TBevel *Bevel1;

TMenuItem *N6;

TStaticText *StaticText2;

TStaticText *TSite;

TStaticText *StaticText4;

TStaticText *TFrictSite;

TGroupBox *GroupBox1;

TStaticText *StaticText1;

TStaticText *TRC;

TGroupBox *GroupBox2;

TStaticText *StaticText3;

TStaticText *StaticText5;

TStaticText *StaticText6;

TStaticText *TImp1;

TStaticText *TImp2;

TStaticText *TImp3;

TStaticText *StaticText7;

TStaticText *StaticText8;

TStaticText *StaticText9;

TStaticText *StaticText10;

TStaticText *StaticText11;

TStaticText *StaticText12;

TStaticText *TInt1;

TStaticText *TInt2;

TStaticText *TInt3;

TStaticText *StaticText13;

TStaticText *StaticText14;

TStaticText *StaticText15;

TStaticText *StaticText16;

TStaticText *TCycle;

TStaticText *StaticText18;

TStaticText *StaticText17;

TStaticText *StaticText19;

TStaticText *TInterraptCode;

TStaticText *StaticText20;

TStaticText *TFrequency;

TStaticText *StaticText22;

TStaticText *StaticText21;

TStaticText *StaticText23;

TStaticText *TVelocity;

TStaticText *StaticText24;

TStaticText *StaticText25;

TStaticText *TCoordinate;

TStaticText *StaticText27;

TStaticText *TCodeType;

TStaticText *StaticText28;

TStaticText *TCurrent;

TStaticText *StaticText30;

TStaticText *StaticText29;

TStaticText *TIsolJunction;

TTimer *MyTimer;

TMenuItem *N7;

TMenuItem *N8;

TMenuItem *N9;

void __fastcall N5Click(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

void __fastcall N3Click(TObject *Sender);

void __fastcall N4Click(TObject *Sender);

void __fastcall N6Click(TObject *Sender);

void __fastcall FormActivate(TObject *Sender);

void __fastcall MyTimerTimer(TObject *Sender);

void __fastcall N8Click(TObject *Sender);

void __fastcall FormClose(TObject *Sender, TCloseAction &Action);

void __fastcall N9Click(TObject *Sender);

private: // User declarations

public: // User declarations

void __fastcall ShowSite(void);

__fastcall TMainForm(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TMainForm *MainForm;

//---------------------------------------------------------------------------

#endif

Файл :RC.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "RC.h"

#include "Sites.h"

#include "FrictSites.h"

#include "RCs.h"

#include "KPT.h"

#include "GlobalVariables.h"

#include "DataModule.h"

#include "SerialLink.h"

#include "Report.h"

SerialLink *MyLink;

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TMainForm *MainForm;

//---------------------------------------------------------------------------

__fastcall TMainForm::TMainForm(TComponent* Owner)

: TForm(Owner)

{

MyLink = new SerialLink(false);

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N5Click(TObject *Sender)

{

MainForm->Close();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N2Click(TObject *Sender)

{

SitesForm->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N3Click(TObject *Sender)

{

FrictSitesForm->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N4Click(TObject *Sender)

{

RCForm->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N6Click(TObject *Sender)

{

KPTForm->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::ShowSite(void)

{

DM->SitesTable->Active = true;

DM->SitesTable->First();

while(DM->SitesTable->FieldByName("NumSite")->Value!=CurNumSite)

{

DM->SitesTable->Next();

}

MainForm->TSite->Caption = AnsiString("(")+IntToStr(CurNumSite)+ AnsiString(") ")+DM->SitesTable->FieldByName("NameSite")->AsString;

DM->FrictSitesTable->Active = true;

DM->FrictSitesTable->First();

while((DM->FrictSitesTable->FieldByName("NumSite")->Value!=CurNumSite)||(DM->FrictSitesTable->FieldByName("NumFrictSite")->Value!=CurNumFrictSite))

{

DM->FrictSitesTable->Next();

}

MainForm->TFrictSite->Caption = AnsiString("(")+IntToStr (CurNumFrictSite)+AnsiString(") ")+DM->FrictSitesTable->FieldByName ("NameFrictSite")->AsString;

DM->RCTable->Active = true;

/* DM->RCTable->First();

while((DM->RCTable->FieldByName("NumSite")->Value!=CurNumSite)||(DM->RCTable->FieldByName("NumFrictSite")->Value!=CurNumFrictSite)||(DM->RCTable->FieldByName("NumJunction")->Value!=CurNumJunction))

{

DM->RCTable->Next();

}*/

DM->RCTable->IndexFieldNames = "NumSite;NumFrictSite; NumJunction";

DM->RCTable->FindNearest(OPENARRAY(TVarRec,(CurNumSite, CurNumFrictSite, CurNumJunction)));

DM->KPTTable->Active = true;

DM->KPTTable->First();

while(DM->KPTTable->FieldByName("NumKPT")->Value!=DM->RCTable->FieldByName("NumKPT")->Value)

{

DM->KPTTable->Next();

}

MainForm->TRC->Caption = AnsiString(" Стык №")+IntToStr (CurNumJunction)+AnsiString(" Светофор ")+DM->RCTable->FieldByName ("NameSignal")->Value+AnsiString("/")+DM->RCTable->FieldByName("NumTranslation")->AsString + AnsiString(" Тип оборудования: ") + DM->KPTTable->FieldByName("NameKPT")->Value;

DM->KPTTable->First();

DM->RCTable->First();

}

void __fastcall TMainForm::FormActivate(TObject *Sender)

{

ShowSite();

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::MyTimerTimer(TObject *Sender)

{

TImp1->Caption = FloatToStrF(Imp1,ffGeneral,2,0);

TImp2->Caption = FloatToStrF(Imp2,ffGeneral,2,0);

TImp3->Caption = FloatToStrF(Imp3,ffGeneral,2,0);

TInt1->Caption = FloatToStrF(Int1,ffGeneral,2,0);

TInt2->Caption = FloatToStrF(Int2,ffGeneral,2,0);

TInt3->Caption = FloatToStrF(Int3,ffGeneral,2,0);

TFrequency->Caption = IntToStr(Frequency);

TVelocity->Caption = IntToStr(Velocity);

TCoordinate->Caption = IntToStr(Coordinate);

TCodeType->Caption = CodeType;

TCurrent->Caption = FloatToStrF(Current,ffGeneral,1,0);

TCycle->Caption = FloatToStrF(Cycle,ffGeneral,2,0);

TInterraptCode->Caption = FloatToStrF(InterraptCode,ffGeneral,2,0);

TIsolJunction->Caption = IsolJunction;

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N8Click(TObject *Sender)

{

if(N8->Checked)

{

ExtendedProtocol = false;

N8->Checked = false;

}

else

{

ExtendedProtocol = true;

N8->Checked = true;

}

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)

{

MyLink->Terminate();

MyLink->WaitFor();

// delete MyLink;

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::N9Click(TObject *Sender)

{

ReportForm->ShowModal();

}

//---------------------------------------------------------------------------

Файл :Report.h

//---------------------------------------------------------------------------

#ifndef ReportH

#define ReportH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

//---------------------------------------------------------------------------

class TReportForm : public TForm

{

__published: // IDE-managed Components

TGroupBox *GroupBox2;

TGroupBox *GroupBox1;

TDBGrid *DBGrid1;

TEdit *EDate;

TStaticText *StaticText1;

TMemo *MComments;

TButton *Button1;

TButton *Button2;

TButton *Button3;

TButton *Button4;

void __fastcall DBGrid1CellClick(TColumn *Column);

void __fastcall FormActivate(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TReportForm(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TReportForm *ReportForm;

//---------------------------------------------------------------------------

#endif

Файл :Report.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Report.h"

#include "DataModule.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TReportForm *ReportForm;

//---------------------------------------------------------------------------

__fastcall TReportForm::TReportForm(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TReportForm::DBGrid1CellClick(TColumn *Column)

{

MComments->Clear();

MComments->Lines->Add(DM->ReportTable->FieldByName ("Comments")->AsString);

}

//---------------------------------------------------------------------------

void __fastcall TReportForm::FormActivate(TObject *Sender)

{

EDate->Text = DateToStr(Date());

DM->ReportTable->Filter = AnsiString("Date = '") + EDate->Text + AnsiString("'");

}

//---------------------------------------------------------------------------

void __fastcall TReportForm::Button1Click(TObject *Sender)

{

DM->ReportTable->Filter = AnsiString("Date = '") + EDate->Text + AnsiString("'");

}

//---------------------------------------------------------------------------

void __fastcall TReportForm::Button2Click(TObject *Sender)

{

DM->ReportTable->Delete();

FormActivate(this);

}

//---------------------------------------------------------------------------

Файл :SerialLink.h

//---------------------------------------------------------------------------

#ifndef SerialLinkH

#define SerialLinkH

//---------------------------------------------------------------------------

#include <Classes.hpp>

//---------------------------------------------------------------------------

class SerialLink : public TThread

{

private:

protected:

void __fastcall Execute();

public:

__fastcall SerialLink(bool CreateSuspended);

void __fastcall DecodePacket(void);

};

//---------------------------------------------------------------------------

#endif

Файл :SerialLink.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "SerialLink.h"

#include "GlobalVariables.h"

#pragma package(smart_init)

//---------------------------------------------------------------------------

// Important: Methods and properties of objects in VCL can only be

// used in a method called using Synchronize, for example:

//// Synchronize(UpdateCaption);

//// where UpdateCaption could look like:

//// void __fastcall SerialLink::UpdateCaption()

// {

// Form1->Caption = "Updated in a thread";

// }

//---------------------------------------------------------------------------

__fastcall SerialLink::SerialLink(bool CreateSuspended)

: TThread(CreateSuspended)

{

FreeOnTerminate = true;

Priority = tpIdle;

}

//---------------------------------------------------------------------------

void __fastcall SerialLink::DecodePacket(void)

{

Imp1 = ((Buffer[0]>>8)&0x000f)*0.1 + ((Buffer[1]>>8)&0x000f)*0.01;

Imp2 = ((Buffer[3]>>8)&0x000f)*0.1 + ((Buffer[4]>>8)&0x000f)*0.01;

Imp3 = ((Buffer[6]>>8)&0x000f)*0.1 + ((Buffer[7]>>8)&0x000f)*0.01;

Int1 = ((Buffer[8]>>8)&0x000f)*0.1 + ((Buffer[9]>>8)&0x000f)*0.01;

Int2 = ((Buffer[11]>>8)&0x000f)*0.1 + ((Buffer[12]>>8)&0x000f)*0.01;

Int3 = ((Buffer[14]>>8)&0x000f)*0.1 + ((Buffer[15]>>8)&0x000f)*0.01;

Cycle = ((Buffer[0]>>4)&0x000f)*1 + ((Buffer[1]>>4)&0x000f)*0.1 + ((Buffer[2]>>4)&0x000f)*0.01;

InterraptCode = ((Buffer[5]>>4)&0x000f)*1 + ((Buffer[6]>>4)&0x000f)*0.1 + ((Buffer[7]>>4)&0x000f)*0.01;

Current = ((Buffer[8]>>4)&0x000f)*10 + ((Buffer[9]>>4)&0x000f)*1 + ((Buffer[10]>>4)&0x000f)*0.1;

Coordinate = (Buffer[0]&0x000f)*1000 + (Buffer[1]&0x000f)*100 + (Buffer[2]&0x000f)*10 + Buffer[3]&0x000f;

Velocity = (Buffer[5]&0x000f)*100 + (Buffer[6]&0x000f)*10 + Buffer[7]&0x000f;

switch((Buffer[10]>>8)*0x0003)

{

case 0 :

CodeType = "КЖ";

break;

case 1 :

CodeType = "Ж";

break;

case 2 :

CodeType = "З";

break;

}

switch(Buffer[4]*0x0003)

{

case 0 :

Frequency = 50;

break;

case 1 :

Frequency = 25;

break;

case 2 :

Frequency = 75;

break;

}

switch((Buffer[5]>>8)*0x0001)

{

case 0 :

IsolJunction = "нет";

break;

case 1 :

IsolJunction = "да";

break;

}

}

//---------------------------------------------------------------------------

void __fastcall SerialLink::Execute()

{

//---- Place thread code here ----

DCB dcb;

HANDLE hCom;

COMMTIMEOUTS TimeOuts;

DWORD dwError;

BOOL fSuccess;

int index = 0;

hCom = CreateFile("COM1",

GENERIC_READ,

0, /* comm devices must be opened w/exclusive-access */

NULL, /* no security attrs */

OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */

0, /* not overlapped I/O */

NULL /* hTemplate must be NULL for comm devices */

);

if (hCom == INVALID_HANDLE_VALUE)

{

dwError = GetLastError(); /* handle error */

return;

}

/*

* Omit the call to SetupComm to use the default queue sizes.

* Get the current configuration.

*/

fSuccess = GetCommState(hCom, &dcb);

if (!fSuccess)

{

return;

/* Handle the error. */

}

/* Fill in the DCB: baud=9600, 8 data bits, no parity, 2 stop bit. */

dcb.BaudRate = 9600;

dcb.ByteSize = 8;

dcb.Parity = NOPARITY;

dcb.StopBits = TWOSTOPBITS;

fSuccess = SetCommState(hCom, &dcb);

if (!fSuccess)

{

return;

/* Handle the error. */

}

GetCommTimeouts(hCom, &TimeOuts);

TimeOuts.ReadIntervalTimeout = 100;

TimeOuts.ReadTotalTimeoutMultiplier = 1;

TimeOuts.ReadTotalTimeoutConstant = 100;

SetCommTimeouts(hCom, &TimeOuts);

unsigned long g=1;

char work1[2], work2[2];

while(!Terminated)

{

fSuccess = ReadFile(hCom,work1,g,&g,0);

if((fSuccess)&&(g>0))

{

do

{

fSuccess = ReadFile(hCom,work2,g,&g,0);

if((fSuccess)&&(g>0))

{

Buffer[index] = work1[0]|(work2[0]<<8);

index++;

if(index==16)

{

DecodePacket();

index=0;

}

}

} while ((fSuccess)&&(g>0));

}

}

CloseHandle(hCom);

}

//---------------------------------------------------------------------------

Файл :MyRC.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

USERES("MyRC.res");

USEFORM("RC.cpp", MainForm);

USEFORM("Sites.cpp", SitesForm);

USEFORM("FrictSites.cpp", FrictSitesForm);

USEFORM("DataModule.cpp", DM); /* TDataModule: DesignClass */

USEFORM("RCs.cpp", RCForm);

USEFORM("KPT.cpp", KPTForm);

USEUNIT("GlobalVariables.cpp");

USEUNIT("SerialLink.cpp");

USEFORM("Report.cpp", ReportForm);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TDM), &DM);

Application->CreateForm(__classid(TMainForm), &MainForm);

Application->CreateForm(__classid(TSitesForm), &SitesForm);

Application->CreateForm(__classid(TFrictSitesForm), &FrictSitesForm);

Application->CreateForm(__classid(TRCForm), &RCForm);

Application->CreateForm(__classid(TKPTForm), &KPTForm);

Application->CreateForm(__classid(TReportForm), &ReportForm);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

return 0;

}

//---------------------------------------------------------------------------

Размещено на Allbest.ru


Подобные документы

  • Определение количественных и качественных характеристик надежности устройств железнодорожной автоматики, телемеханики и связи. Анализ вероятности безотказной работы устройств, частоты и интенсивности отказов. Расчет надежности электронных устройств.

    курсовая работа [625,0 K], добавлен 16.02.2013

  • Принципиальные схемы вычислительного канала, устройств сравнения и контроля, безопасного ввода информации. Разработка алгоритма управления состоянием переезда, передачи и программного обеспечения. Расчет показателей безотказности и безопасности системы.

    курсовая работа [822,8 K], добавлен 08.02.2014

  • Теоретические принципы разработки микропроцессорной системы охраны и сигнализации. Разработка графа и таблицы переходов состояний МПСО, его аппаратного и программного интерфейса, управляющих программ режимов и специального программного обеспечения.

    курсовая работа [37,0 K], добавлен 12.05.2012

  • Разработка интегрированной системы сигнализации на базе использования оптико-электронных и звуковых извещателей применительно к условиям торгово-развлекательного комплекса. Расчет экономической эффективности от внедрения системы охранной сигнализации.

    дипломная работа [2,3 M], добавлен 05.11.2016

  • Организационный проект внедрения на дистанции индустриального метода технического обслуживания устройств автоматики, телемеханики и связи. Расчет технического, эксплуатационного, производственного штата дистанции. Аварийно-восстановительная летучка связи.

    курсовая работа [1,1 M], добавлен 28.03.2012

  • Обеспечение перевозочного процесса надежно действующими устройствами автоматики, телемеханики и связи как основная задача дистанции сигнализации и связи. Ознакомление с оборудованием цеха и графиком технологического процесса обслуживания устройств.

    отчет по практике [33,3 K], добавлен 14.06.2015

  • Разработка проекта, расчет параметров и составление схем электропитающей установки для устройств автоматики, телемеханики и связи, обеспечивающей бесперебойным питанием нагрузки с номинальным напряжением 24,60 В постоянного и 220 В переменного тока.

    контрольная работа [405,7 K], добавлен 05.02.2013

  • Преимущества третьего класса систем сигнализации ОКС №7, принцип его работы и составные части. Основы системы общеканальной сигнализации №7, ее функциональные уровни и режимы. Схема централизованной системы сигнализации по общему каналу и маршрутизации.

    лабораторная работа [778,0 K], добавлен 15.07.2009

  • Выбор структурной и функциональной схемы системы охранно-пожарной сигнализации объекта. Разработка пожарного извещателя, моделирование его узлов в пакете Micro Cap. Системный анализ работоспособности и безопасности системы пожарной сигнализации.

    дипломная работа [2,9 M], добавлен 27.01.2016

  • Ознакомление с сервисным центром оргтехники ТОО "Монтеко"; организация систем офисной связи, контроля доступа; выбор и обоснование схемы охранно-пожарной сигнализации: пороговые системы с радиальными шлейфами, с модульной структурой; пожарные извещатели.

    отчет по практике [810,2 K], добавлен 18.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.