Excuse me, is this how to return a responsibility??
The warrior to help,
CodePudding user response:
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --#include
# pragma hdrstop
# include "ThreadReceiveData. H"
# include "ClassComm. H"
#include
# include "ClassConfigInfoRW. H"
# include "is the main. H"
# include "stdio.h"
//# include & lt; ADODB. Hpp>
//# include & lt; DB. Hpp>
# pragma package (smart_init)
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
//Important: the Methods and the properties of objects in the VCL can only be
//2 in a method called using the Synchronize, for example:
//
//the Synchronize (UpdateCaption);
//
//the where UpdateCaption could look like:
//
//void __fastcall TThreadReceiveData: : UpdateCaption ()
//{
//Form1 - & gt; Caption="Updated in a, thread".
//}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TThreadReceiveData: : TThreadReceiveData (bool CreateSuspended)
: TThread (CreateSuspended)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TThreadReceiveData: : TThreadReceiveData (DEVCONFIGINFO thrd_devConfigInfo, int thrd_devIndex, bool CreateSuspended)
: TThread (CreateSuspended)
{
FreeOnTerminate=true;
ClassComm=new TClassComm ();
DevConfigInfo=thrd_devConfigInfo;
DevIndex=thrd_devIndex;
Int portnum baudrate, parity, stopbits;
Portnum=devConfigInfo. PCInfo [devIndex] portnum;
Baudrate=devConfigInfo. PCInfo [devIndex] baudrate;
Parity=devConfigInfo. PCInfo [devIndex]. Parity;
Stopbits=devConfigInfo. PCInfo [devIndex] stopbits;
ClassComm - & gt; InitPort (portnum baudrate, parity, stopbits);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TThreadReceiveData: : Execute ()
{
//- Place thread code here -
Unsigned char receive_buf [2048].
Unsigned char history_receive_buf [2048].
Unsigned short count, len;
AnsiString str_tablename;
AnsiString str_data [2].
AnsiString str_sql;
Str_data [0]="";
Str_data [1]="";
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
CoInitialize (NULL);
ADOConnection=new TADOConnection (ADOConnection);
ADOCommand=new TADOCommand (ADOCommand);
ADOConnection - & gt; The ConnectionString="Provider=SQLOLEDB. 1; Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=JZMSDB; Data Source=ZHANGSONG ";
ADOConnection - & gt; LoginPrompt=false;
ADOCommand - & gt; The Connection=ADOConnection;
ADOConnection - & gt; The Open ();
Str_tablename="Table_Data" + IntToStr (devIndex) + "_", Now () the FormatString (" YYYYMMDDhhmmss ");
Str_tablename str_sql="CREATE TABLE" + + "(ID bigint identity (1, 1) not null, primary key, recordTime DATETIME, sdata char (32))";
ADOCommand - & gt; CommandText=str_sql;
ADOCommand - & gt; The Execute ();
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Len=0;
ReceiveData. ReceiveCnt [0]=0;
ReceiveData. ReceiveCnt [1]=0;
Do {
ReadWriteGuard - & gt; Acquire ();
The count=ClassComm - & gt; ReceiveData (receive_buf);
ReadWriteGuard - & gt; Release ();
for(int i=0; i
+ len history_receive_buf [I]=receive_buf [I];
}
Len +=count;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Int k=0;
While (len & gt;=8)
{
If (history_receive_buf [k]==0 XFF)
{
If (k==7)
{
Str_data [history_receive_buf [0] & amp; 0 x01]="";
For (int dindex=0; Dindex<8; Dindex++)
{
ReceiveData. Databuf [history_receive_buf [0] & amp; 0 x01] [dindex]=history_receive_buf [dindex];
Str_data [history_receive_buf [0] & amp; 0 x01] +=HexToAnsiString (history_receive_buf [dindex]);
}
ReceiveData. ReceiveCnt [history_receive_buf [0] & amp; 0 x01] + +;
Col_1=10;
* devIndex row_1=2 + 1 + (history_receive_buf [0] & amp; 0 x01);
Col_2=11;
* devIndex row_2=2 + 1 + (history_receive_buf [0] & amp; 0 x01);
Ss [0]=str_data [history_receive_buf [0] & amp; 0 x01];
Ss [1]=ReceiveData. ReceiveCnt [history_receive_buf [0] & amp; 0 x01];
The Synchronize (DisplayData);
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- save data -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Str_tablename str_sql="insert into" + + "(recordTime sdata) VALUES ('" + Now () the FormatString (" MM - DD YYYY - hh: MM: ss ") + "', '" + str_data [history_receive_buf [0] & amp; 0 x01] +" ") ";
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull