Details
-
Bug
-
Resolution: Done
-
P2: Important
-
Qt Creator 2.0.1
-
None
-
Windows 7.
Description
//0E - function struct Request0Efunction1_2 { unsigned short nchannel; }; struct Request0Efunction5_6 { unsigned short ngroupOfchannel; }; struct Request0Efunction7_23 { unsigned short nchannel; unsigned short T1,T2; }; struct Request0Efunction24_25 { unsigned char nmodule,nchannel,dt; unsigned char T [5]; }; struct Request0Efunction33_40 { unsigned char oscillogramCount,oscillogramType; unsigned short oscillogramSize; }; struct Request0E{ unsigned char functionCode; union { Request0Efunction1_2 request0Efunction1_2; Request0Efunction5_6 request0Efunction5_6; Request0Efunction7_23 request0Efunction7_23; Request0Efunction24_25 request0Efunction24_25; Request0Efunction33_40 request0Efunction33_40; } dataFields; }; //end0E //Total type for all function. Il faut le declarer apres tous les declarations de type des fonctions. union AllFunctionsDataType{ bool setMeToFalseIfNoData;//Выставлять в false, тогда первый байт будет равен 0, будь это код функции или полное отсутствие данных и дальше можно не проверять. Request0E f0E; }; ...
Qt Creator decide, that formattedData.f0E.request0Efunction1_2.nchannel=(unsigned short)(packetData.at(startIndex+1)<<8)|(unsigned short)(packetData.at(startIndex)); is right
Compiler (mingw) decide that formattedData.f0E.dataFields.request0Efunction1_2.nchannel=(unsigned short)(packetData.at(startIndex+1)<<8)|(unsigned short)(packetData.at(startIndex)); is right.
Please correct the automatic code-competion tool in Qt-Creator