00001
00067 #if !defined(_CIGI_COMP_CTRL_V3_INCLUDED_)
00068 #define _CIGI_COMP_CTRL_V3_INCLUDED_
00069
00070 #include "CigiBaseCompCtrl.h"
00071
00072
00073
00074 class CIGI_SPEC CigiCompCtrlV3 : public CigiBaseCompCtrl
00075 {
00076
00077 public:
00078
00079
00080
00081
00084 CigiCompCtrlV3();
00085
00086
00089 virtual ~CigiCompCtrlV3();
00090
00091
00092
00093
00094
00105 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const;
00106
00107
00117 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec);
00118
00119
00131 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00132 CigiCnvtInfoType::Type &CnvtInfo);
00133
00134
00135
00136
00137
00138
00139
00140
00147 int SetInstanceID(const Cigi_uint16 InstanceIDIn, bool bndchk=true)
00148 {
00149 InstanceID = InstanceIDIn;
00150 return(CIGI_SUCCESS);
00151 }
00152
00153
00156 Cigi_uint16 GetInstanceID(void) const { return(InstanceID); }
00157
00158
00159
00160
00161
00168 int SetCompState(const Cigi_uint8 CompStateIn, bool bndchk=true)
00169 {
00170 CompState = (Cigi_uint16) CompStateIn;
00171 return(CIGI_SUCCESS);
00172 }
00173
00174
00177 Cigi_uint8 GetCompState(void)
00178 {
00179 Cigi_uint8 V3State = (Cigi_uint8)((CompState > 0x00ff) ? 0xff : CompState);
00180 return(V3State);
00181 }
00182
00183
00184
00185
00186
00207 int SetCompClassV3(const CompClassV3Grp CompClassV3In, bool bndchk=true);
00208
00209
00212 CompClassV3Grp GetCompClassV3(void) const { return(CompClassV3); }
00213
00214
00215
00216
00217
00226 int SetCompData(const Cigi_uint8 CompDataIn,
00227 const unsigned int Word,
00228 const BytePos Pos,
00229 bool bndchk=true);
00230
00231
00240 int SetCompData(const Cigi_int8 CompDataIn,
00241 const unsigned int Word,
00242 const BytePos Pos,
00243 bool bndchk=true);
00244
00245
00254 int SetCompData(const Cigi_uint16 CompDataIn,
00255 const unsigned int Word,
00256 const HalfWordPos Pos,
00257 bool bndchk=true);
00258
00259
00268 int SetCompData(const Cigi_int16 CompDataIn,
00269 const unsigned int Word,
00270 const HalfWordPos Pos,
00271 bool bndchk=true);
00272
00273
00281 int SetCompData(const Cigi_uint32 CompDataIn,
00282 const unsigned int Word,
00283 bool bndchk=true);
00284
00285
00293 int SetCompData(const Cigi_int32 CompDataIn,
00294 const unsigned int Word,
00295 bool bndchk=true);
00296
00297
00305 int SetCompData(const float CompDataIn,
00306 const unsigned int Word,
00307 bool bndchk=true);
00308
00309
00317 int SetCompData(const Cigi_uint64 CompDataIn,
00318 const unsigned int Pos,
00319 bool bndchk=true);
00320
00321
00329 int SetCompData(const double CompDataIn,
00330 const unsigned int Pos,
00331 bool bndchk=true);
00332
00333
00334
00340 Cigi_uint8 GetUCharCompData(const unsigned int Word,
00341 const BytePos Pos);
00342
00343
00349 Cigi_int8 GetCharCompData(const unsigned int Word,
00350 const BytePos Pos);
00351
00352
00358 Cigi_uint16 GetUShortCompData(const unsigned int Word,
00359 const HalfWordPos Pos);
00360
00361
00367 Cigi_int16 GetShortCompData(const unsigned int Word,
00368 const HalfWordPos Pos);
00369
00370
00375 Cigi_uint32 GetULongCompData(const unsigned int Word);
00376
00377
00382 Cigi_int32 GetLongCompData(const unsigned int Word);
00383
00384
00389 float GetFloatCompData(const unsigned int Word);
00390
00391
00396 Cigi_uint64 GetI64CompData(const unsigned int Pos);
00397
00398
00403 double GetDoubleCompData(const unsigned int Pos);
00404
00405
00406
00407
00408 protected:
00409
00410
00411 static const int CompClassCnvtSz = 14;
00412 static const CompAssocGrp CompClassV3xV1[CompClassCnvtSz];
00413 static const CompClassV2Grp CompClassV3xV2[CompClassCnvtSz];
00414
00415
00416 };
00417
00418 #endif // #if !defined(_CIGI_COMP_CTRL_V3_INCLUDED_)