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

#include <vcl.h>
#include <condefs.h>
#pragma hdrstop
#include "ServerMain.h"
#include "smtpmain.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#include <conio.h>
#include <windows.h>
#include "Tserial.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TformMain *formMain;
//---------------------------------------------------------------------------
__fastcall TformMain::TformMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TformMain::FormCreate(TObject *Sender)
{
ZipCodeList = new TStringList();
ZipCodeList->LoadFromFile(ExtractFilePath(Application->ExeName) + "ZipCodes.dat");
}
//---------------------------------------------------------------------------
void __fastcall TformMain::FormDestroy(TObject *Sender)
{
delete ZipCodeList;
ZipCodeList = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TformMain::IdTCPServer1Connect(TIdPeerThread *AThread)
{
// AThread->Connection->WriteLn("Indy Zip Code Server Ready.");
}
//---------------------------------------------------------------------------
void __fastcall TformMain::IdTCPServer1Execute(TIdPeerThread *AThread)
{
AnsiString sCommand;
sCommand = AThread->Connection->AllData(); //Az alldata akkor irja ki ha vege a kapcsolatnak
// ListBox1->Items->Add(sCommand) ;
if(SameText(sCommand.SubString(1,6),"Pisti1")) // 1-6 ig osszehasonlitja a stringeket
{ qir(); } // ELőre
if(SameText(sCommand.SubString(1,6),"Pisti2")) // 1-6 ig osszehasonlitja a stringeket
{ air(); } // Hátra
if(SameText(sCommand.SubString(1,6),"Pisti3")) // 1-6 ig osszehasonlitja a stringeket
{ eir(); } // Balra
if(SameText(sCommand.SubString(1,6),"Pisti4")) // 1-6 ig osszehasonlitja a stringeket
{ dir(); } // Jobbra
if(SameText(sCommand.SubString(1,6),"Pisti5")) // 1-6 ig osszehasonlitja a stringeket
{ wir(); } // Fel
if(SameText(sCommand.SubString(1,6),"Pisti6")) // 1-6 ig osszehasonlitja a stringeket
{ sir(); } // Le
if(SameText(sCommand.SubString(1,6),"Pisti7")) // 1-6 ig osszehasonlitja a stringeket
{ rir(); } // Cam 1
if(SameText(sCommand.SubString(1,6),"Pisti8")) // 1-6 ig osszehasonlitja a stringeket
{ fir(); } // Cam 2

if(SameText(sCommand.SubString(1,7),"Pisti90")) // 1-6 ig osszehasonlitja a stringeket
{ zir(); } // Cam 2
if(SameText(sCommand.SubString(1,7),"Pisti91")) // 1-6 ig osszehasonlitja a stringeket
{ hir(); } // Cam 2
if(SameText(sCommand.SubString(1,7),"Pisti92")) // 1-6 ig osszehasonlitja a stringeket
{ tir(); } // Cam 2
if(SameText(sCommand.SubString(1,7),"Pisti93")) // 1-6 ig osszehasonlitja a stringeket
{ gir(); } // Cam 2

 

if(SameText(sCommand.SubString(1,6),"mail::")) // 1-6 ig osszehasonlitja a stringeket
{
// ListBox1->Items->Add(sCommand);
int loc;
sCommand.Delete(1,6);
loc=sCommand.Pos("=");
s1=sCommand.SubString(1,loc-1); // Mail cím
ListBox1->Items->Add(s1);
sCommand.Delete(1,loc);
loc=sCommand.Pos("=");
s2=sCommand.SubString(1,loc-1); // Password
// ListBox1->Items->Add(s2);
sCommand.Delete(1,loc);

loc=sCommand.Pos("=");
s3=sCommand.SubString(1,loc-1); // Név
// ListBox1->Items->Add(s3);
mailir(); // Mail küldési kérés
}
if(SameText(sCommand.SubString(1,6),"miil::")) // 1-6 ig osszehasonlitja a stringeket
{
// ListBox1->Items->Add(sCommand);
int loc;
sCommand.Delete(1,6);
loc=sCommand.Pos("=");
s1=sCommand.SubString(1,loc-1); // Mail cím
ListBox1->Items->Add(s1);
sCommand.Delete(1,loc);
loc=sCommand.Pos("=");
s2=sCommand.SubString(1,loc-1); // Password
// ListBox1->Items->Add(s2);
sCommand.Delete(1,loc);

loc=sCommand.Pos("=");
s3=sCommand.SubString(1,loc-1); // Név
// ListBox1->Items->Add(s3);
mailir1(); // Mail küldési kérés
}
}

void __fastcall TformMain::ListBox1Click(TObject *Sender)
{
ListBox1->Items->Clear();
}
//---------------------------------------------------------------------------

void TformMain::mailir1() // Új regisztráció
{
NMSMTP1->Host ="smtp.chello.hu";
NMSMTP1->Port = 25;
NMSMTP1->UserID ="hwdev.hu";
NMSMTP1->Connect();
NMSMTP1->PostMessage->FromAddress ="techman@hwdev.hu";
NMSMTP1->PostMessage->FromName ="Account Manager";
NMSMTP1->PostMessage->Subject ="New registration";
NMSMTP1->PostMessage->ToAddress->Add(s1);
NMSMTP1->PostMessage->ToBlindCarbonCopy->Add("");
NMSMTP1->PostMessage->ToCarbonCopy->Add("");
// NMSMTP1->PostMessage->Attachments->AddStrings(ListBox1->Items);
// NMSMTP1->PostMessage->Attachments->Add("readme.txt");
NMSMTP1->PostMessage->Body->Text="Your New account details!\n\nThank you for using hwdev.hu!\n\nwww.hwdev.hu\n\nUser Name:"+s2+"\nPassword:"+s3+"\n\nBest regards";
NMSMTP1->SendMail();
if (NMSMTP1->Connected)
NMSMTP1->Disconnect();
}

void TformMain::mailir() // Elfelejtett jelszó
{
NMSMTP1->Host ="smtp.chello.hu";
NMSMTP1->Port = 25;
NMSMTP1->UserID ="hwdev.hu";
NMSMTP1->Connect();
NMSMTP1->PostMessage->FromAddress ="techman@hwdev.hu";
NMSMTP1->PostMessage->FromName ="Account Manager";
NMSMTP1->PostMessage->Subject ="Forgotten password";
NMSMTP1->PostMessage->ToAddress->Add(s1);
NMSMTP1->PostMessage->ToBlindCarbonCopy->Add("");
NMSMTP1->PostMessage->ToCarbonCopy->Add("");
// NMSMTP1->PostMessage->Attachments->AddStrings(ListBox1->Items);
// NMSMTP1->PostMessage->Attachments->Add("readme.txt");
NMSMTP1->PostMessage->Body->Text="Your account details!\n\nThank you for using hwdev!\n\nwww.hwdev.hu\n\nUser Name:"+s2+"\nPassword:"+s3+"\n\nBest regards";

NMSMTP1->SendMail();
if (NMSMTP1->Connected)
NMSMTP1->Disconnect();
}

void TformMain::tir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'t');
delete com;
com = 0;
}

}

void TformMain::gir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'g');
delete com;
com = 0;
}

}

void TformMain::zir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'z');
delete com;
com = 0;
}

}

void TformMain::hir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'h');
delete com;
com = 0;
}

}

 

 

void TformMain::rir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'r');
delete com;
com = 0;
}

}
void TformMain::fir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'f');
delete com;
com = 0;
}

}
void TformMain::wir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'w');
delete com;
com = 0;
}

}
void TformMain::qir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'q');
delete com;
com = 0;
}

}
void TformMain::air()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'a');
delete com;
com = 0;
}

}
void TformMain::dir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'d');
delete com;
com = 0;
}

}
void TformMain::eir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'e');
delete com;
com = 0;
}

}
void TformMain::sir()
{
int c,i,n,old_n;
Tserial *com;
char buffer[20];
com = new Tserial();
if (com!=0)
{
com->connect("COM1", 9600, spNONE);
com->sendChar((char)'s');
delete com;
com = 0;
}

}
/* -------------------------------------------------------------------- */
/* ------------------------- Tserial ----------------------------- */
/* -------------------------------------------------------------------- */
Tserial::Tserial()
{
parityMode = spNONE;
port[0] = 0;
rate = 0;
serial_handle = INVALID_HANDLE_VALUE;
}

/* -------------------------------------------------------------------- */
/* -------------------------- ~Tserial ------------------------- */
/* -------------------------------------------------------------------- */
Tserial::~Tserial()
{
if (serial_handle!=INVALID_HANDLE_VALUE)
CloseHandle(serial_handle);
serial_handle = INVALID_HANDLE_VALUE;
}
/* -------------------------------------------------------------------- */
/* -------------------------- disconnect ------------------------- */
/* -------------------------------------------------------------------- */
void Tserial::disconnect(void)
{
if (serial_handle!=INVALID_HANDLE_VALUE)
CloseHandle(serial_handle);
serial_handle = INVALID_HANDLE_VALUE;
}
/* -------------------------------------------------------------------- */
/* -------------------------- connect ------------------------- */
/* -------------------------------------------------------------------- */
int Tserial::connect (char *port_arg, int rate_arg, serial_parity parity_arg)
{
int erreur;
DCB dcb;
COMMTIMEOUTS cto = { 0, 0, 0, 0, 0 };

/* --------------------------------------------- */
if (serial_handle!=INVALID_HANDLE_VALUE)
CloseHandle(serial_handle);
serial_handle = INVALID_HANDLE_VALUE;

erreur = 0;

if (port_arg!=0)
{
strncpy(port, port_arg, 10);
rate = rate_arg;
parityMode= parity_arg;
memset(&dcb,0,sizeof(dcb));

/* -------------------------------------------------------------------- */
// set DCB to configure the serial port
dcb.DCBlength = sizeof(dcb);

/* ---------- Serial Port Config ------- */
dcb.BaudRate = rate;

switch(parityMode)
{
case spNONE:
dcb.Parity = NOPARITY;
dcb.fParity = 0;
break;
case spEVEN:
dcb.Parity = EVENPARITY;
dcb.fParity = 1;
break;
case spODD:
dcb.Parity = ODDPARITY;
dcb.fParity = 1;
break;
}

dcb.StopBits = ONESTOPBIT;
dcb.ByteSize = 8;

dcb.fOutxCtsFlow = 0;
dcb.fOutxDsrFlow = 0;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = 0;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fOutX = 0;
dcb.fInX = 0;

/* ----------------- misc parameters ----- */
dcb.fErrorChar = 0;
dcb.fBinary = 1;
dcb.fNull = 0;
dcb.fAbortOnError = 0;
// dcb.wReserved = 0;
dcb.XonLim = 2;
dcb.XoffLim = 4;
dcb.XonChar = 0x13;
dcb.XoffChar = 0x19;
dcb.EvtChar = 0;

/* -------------------------------------------------------------------- */
serial_handle = CreateFile(port, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,NULL,NULL);
// opening serial port

if (serial_handle != INVALID_HANDLE_VALUE)
{
if(!SetCommMask(serial_handle, 0))
erreur = 1;

// set timeouts
if(!SetCommTimeouts(serial_handle,&cto))
erreur = 2;

// set DCB
if(!SetCommState(serial_handle,&dcb))
erreur = 4;
}
else
erreur = 8;
}
else
erreur = 16;

/* --------------------------------------------- */
if (erreur!=0)
{
CloseHandle(serial_handle);
serial_handle = INVALID_HANDLE_VALUE;
}
return(erreur);
}

/* -------------------------------------------------------------------- */
/* -------------------------- sendChar ------------------------- */
/* -------------------------------------------------------------------- */
void Tserial::sendChar(char data)
{
sendArray(&data, 1);
}

/* -------------------------------------------------------------------- */
/* -------------------------- sendArray ------------------------- */
/* -------------------------------------------------------------------- */
void Tserial::sendArray(char *buffer, int len)
{
unsigned long result;

if (serial_handle!=INVALID_HANDLE_VALUE)
WriteFile(serial_handle, buffer, len, &result, NULL);
}

/* -------------------------------------------------------------------- */
/* -------------------------- getChar ------------------------- */
/* -------------------------------------------------------------------- */
char Tserial::getChar(void)
{
char c;
getArray(&c, 1);
return(c);
}

/* -------------------------------------------------------------------- */
/* -------------------------- getArray ------------------------- */
/* -------------------------------------------------------------------- */
int Tserial::getArray (char *buffer, int len)
{
unsigned long read_nbr;

read_nbr = 0;
if (serial_handle!=INVALID_HANDLE_VALUE)
{
ReadFile(serial_handle, buffer, len, &read_nbr, NULL);
}
return((int) read_nbr);
}
/* -------------------------------------------------------------------- */
/* -------------------------- getNbrOfBytes ------------------------ */
/* -------------------------------------------------------------------- */
int Tserial::getNbrOfBytes (void)
{
struct _COMSTAT status;
int n;
unsigned long etat;

n = 0;

if (serial_handle!=INVALID_HANDLE_VALUE)
{
ClearCommError(serial_handle, &etat, &status);
n = status.cbInQue;
}

return(n);
}