*.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "crc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MSCommLib_OCX"
#pragma link "AniGIFCtrl_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::fan(bool b,int i)
{
switch(i)
{
case 0:
AniGIF2->Playing=b;
AniGIF4->Playing=b;
AniGIF6->Playing=b;
AniGIF8->Playing=b;
AniGIF10->Playing=b;
AniGIF12->Playing=b;
AniGIF14->Playing=b;
break;
case 1:
AniGIF1->Playing=b;
AniGIF3->Playing=b;
AniGIF5->Playing=b;
AniGIF7->Playing=b;
AniGIF9->Playing=b;
AniGIF11->Playing=b;
AniGIF13->Playing=b;
break;
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
MSComm1->Settings="9600,n,8,1";
MSComm1->InputLen=0;
MSComm1->InputMode=1;
MSComm1->RThreshold=1;
AniGIF1->Playing=false;
AniGIF2->Playing=false;
AniGIF3->Playing=false;
AniGIF4->Playing=false;
AniGIF5->Playing=false;
AniGIF6->Playing=false;
AniGIF7->Playing=false;
AniGIF8->Playing=false;
AniGIF9->Playing=false;
AniGIF10->Playing=false;
AniGIF11->Playing=false;
AniGIF12->Playing=false;
AniGIF13->Playing=false;
AniGIF14->Playing=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(MSComm1->PortOpen)
{ShowMessage("port already open");
return;
}
MSComm1->CommPort=RadioGroup1->ItemIndex+1;
MSComm1->PortOpen=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
OleVariant variant_inp;
AnsiString Msg,Msg2;
unsigned short len;
unsigned char rxdata[2048];
if(MSComm1->CommEvent==comEvReceive)
{
variant_inp=MSComm1->Input;
len=variant_inp.ArrayHighBound(1);
for(int i=0;i<len+1;i++)
rxdata[i]=variant_inp.GetElement(i);
for(int i=0;i<len+1;i++)
Msg+=IntToHex(rxdata[i],2)+" ";
unsigned short c;
c=CRC16(rxdata,len-1);
rxdata[len+1]=c>>8;
rxdata[len+2]=c&0xff;
if(rxdata[len-1]==rxdata[len+1]&&rxdata[len]==rxdata[len+2])
{
if(rxdata[0]==0x01)
{
switch(rxdata[1])
{
case 0x10:
{