Разработка компьютерного измерительного комплекса вагона-лаборатории железнодорожной автоматики, телемеханики и связи
Виды и интерфейсы измерительных информационных систем. Принципы функционирования автоматической локомотивной сигнализации и системы "Контроль". Разработка программного обеспечения для обработки информации о работе устройств сигнализации и рельсовых цепей.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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