<!--:Begin:Chksum:1:-->
<!--:Begin:Msg:8:0:-->
<sample>
<ver>1.1</ver>
<instrinfo>
<p><n>PRDI</n><v>BM800</v></p>
<p><n>FIWV</n><v>3.1.1</v></p>
<p><n>SNO</n><v>47813</v></p>
<p><n>BRND</n><v>S</v></p>
<p><n>IAPL</n><v>H</v></p>
<p><n>IID</n></p>
<p><n>LMOF</n><v>1</v></p>
<p><n>PMPM</n><v>24</v></p>
<p><n>MBTY</n><v>0</v></p>
<p><n>HFME</n><v>1</v></p>
</instrinfo>
<smpinfo>
<p><n>ID</n><v>068271</v></p>
<p><n>SEQ</n><v>4609</v></p>
<p><n>DATE</n><v>2019-11-07T08:57:57</v></p>
<p><n>OPID</n></p>
<p><n>APNU</n><v>1</v></p>
<p><n>APNA</n><v>BLOOD</v></p>
<p><n>ASPM</n><v>AS</v></p>
<p><n>ASPS</n><v>1</v></p>
<p><n>SORC</n><v>0</v></p>
<p><n>BLMD</n><v>0</v></p>
<p><n>BLNK</n><v>0</v></p>
<p><n>STYP</n><v>0</v></p>
<p><n>RGED</n></p>
<p><n>RGEL</n></p>
<p><n>RGEC</n></p>
<p><n>RDLI</n><v>1906-145</v></p>
<p><n>RDPN</n><v>543</v></p>
<p><n>RDED</n><v>2022-06-10</v></p>
<p><n>RLLI</n><v>1906-154</v></p>
<p><n>RLPN</n><v>84</v></p>
<p><n>RLED</n><v>2022-06-25</v></p>
<p><n>RCLI</n></p>
<p><n>RCPN</n></p>
<p><n>RCED</n></p>
<p><n>RELI</n></p>
<p><n>REPN</n></p>
<p><n>REED</n></p>
<p><n>RPD</n><v>30</v></p>
<p><n>RPDS</n><v>1</v></p>
<p><n>RPDL</n><v>15</v></p>
<p><n>RPDH</n><v>30</v></p>
<p><n>RPDF</n><v>27</v></p>
<p><n>MBTE</n><v>30.4</v></p>
<p><n>MCVO</n><v>+0.0</v></p>
<p><n>WDDM</n><v>0</v></p>
<p><n>WDDP</n><v>45</v></p>
<p><n>WDMS</n><v>2</v></p>
<p><n>WDMA</n><v>2</v></p>
<p><n>WDFB</n><v>0</v></p>
<p><n>WDLL</n></p>
<p><n>WDLH</n></p>
<p><n>WDCL</n></p>
<p><n>WDCH</n></p>
<p><n>WLGL</n></p>
<p><n>WLGH</n></p>
<p><n>WDIL</n><v>140</v></p>
<p><n>WDIH</n><v>180</v></p>
<p><n>WDOM</n><v>0</v></p>
<p><n>WDWD</n><v>2</v></p>
<p><n>XLT</n></p>
<p><n>EOMD</n></p>
<p><n>EODL</n></p>
<p><n>EODH</n></p>
<p><n>EOAC</n></p>
<p><n>EOWC</n></p>
<p><n>XEIT</n></p>
<p><n>EASS</n></p>
<p><n>CAPL</n></p>
<p><n>CLVL</n></p>
<p><n>CEXP</n></p>
<p><n>CEXT</n></p>
<p><n>EXCL</n></p>
<p><n>ASWP</n><v>15</v></p>
<p><n>ID2</n></p>
<p><n>MCVX</n><v>0</v></p>
</smpinfo>
<smpresults>
<p><n>RBC</n><v>3.90</v><l>3.50</l><h>5.50</h></p>
<p><n>MCV</n><v>80.2</v><l>75.0</l><h>100.0</h></p>
<p><n>HCT</n><v>31.3</v><l>35.0</l><h>55.0</h></p>
<p><n>MCH</n><v>30.9</v><l>25.0</l><h>35.0</h></p>
<p><n>MCHC</n><v>38.6</v><l>31.0</l><h>38.0</h></p>
<p><n>RDWR</n><v>11.6</v><l>11.0</l><h>16.0</h></p>
<p><n>RDWA</n><v>52.9</v><l>30.0</l><h>150.0</h></p>
<p><n>PLT</n><v>179</v><l>100</l><h>400</h></p>
<p><n>MPV</n><v>7.4</v><l>8.0</l><h>11.0</h></p>
<p><n>PCT</n><v>0.13</v><l>0.01</l><h>9.99</h></p>
<p><n>PDW</n><v>9.9</v><l>0.1</l><h>99.9</h></p>
<p><n>LPCR</n><v>10.3</v><l>0.1</l><h>99.9</h></p>
<p><n>HGB</n><v>12.1</v><l>11.5</l><h>16.5</h></p>
<p><n>WBC</n><v>4.1</v><l>3.5</l><h>10.0</h></p>
<p><n>LA</n><v>1.4</v><l>0.5</l><h>5.0</h></p>
<p><n>MA</n><v>0.2</v><l>0.1</l><h>1.5</h></p>
<p><n>GA</n><v>2.5</v><l>1.2</l><h>8.0</h></p>
<p><n>LR</n><v>35.6</v><l>15.0</l><h>50.0</h></p>
<p><n>MR</n><v>4.4</v><l>2.0</l><h>15.0</h></p>
<p><n>GR</n><v>60.0</v><l>35.0</l><h>80.0</h></p>
</smpresults>
<tparams>
<p><n>RCT</n><v>14234</v></p>
<p><n>WCT</n><v>10571</v></p>
<p><n>aspt</n><v>405</v></p>
</tparams>
</sample>
<!--:End:Msg:8:0:-->
<!--:End:Chksum:1:26:100:-->
char *p;
p = strstr("this is a test", "is");
есть разделяющие символы "0D 0A 0D 0A 0D 0A"
далее записать данные в буфер, отправить полный пакет на обработку, произвести обнуление и снова прием.
любого случая
QString byte;
static QByteArray byteArray;
QFile file("logs.txt");
QFile bfile("b_logs.txt");
byte = serialPort->readAll();
// символы перехода строки 0D 0D0A 0A 0D 0A
//начало приема данных
if( !byte.contains("\r\n\r\n")){
byteArray+=byte;
if(bfile.open(QIODevice::Append)){
file.write("пакеты"+ byteArray);
file.close();
}
}else{
QStringList l= byte.split("\r\n\r\n");
byteArray+=l[0];
if(byteArray.contains("<!--:Begin:Chksum") && byteArray.contains("<!--:End:Chksum:")){
SweelabAlfa alfa;
alfa.SweelabStart(byteArray);
ui->terminal->append(byteArray);
if(file.open(QIODevice::Append)){
file.write("полный пакет"+ byteArray);
file.close();
}
byteArray.clear();
}
byteArray+=l[1];
}