00001
00070 #if !defined(_CIGI_COMP_CTRL_V3_3_INCLUDED_)
00071 #define _CIGI_COMP_CTRL_V3_3_INCLUDED_
00072
00073 #include "CigiBaseCompCtrl.h"
00074
00075
00076
00077 class CIGI_SPEC CigiCompCtrlV3_3 : public CigiBaseCompCtrl
00078 {
00079
00080 public:
00081
00082
00083
00084
00087 CigiCompCtrlV3_3();
00088
00089
00092 virtual ~CigiCompCtrlV3_3();
00093
00094
00095
00096
00097
00108 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const;
00109
00110
00120 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec);
00121
00122
00134 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00135 CigiCnvtInfoType::Type &CnvtInfo);
00136
00137
00138
00139
00140
00141
00142
00143
00150 int SetInstanceID(const Cigi_uint16 InstanceIDIn, bool bndchk=true)
00151 {
00152 InstanceID = InstanceIDIn;
00153 return(CIGI_SUCCESS);
00154 }
00155
00156
00159 Cigi_uint16 GetInstanceID(void) const { return(InstanceID); }
00160
00161
00162
00163
00164
00171 int SetCompState(const Cigi_uint8 CompStateIn, bool bndchk=true)
00172 {
00173 CompState = (Cigi_uint16) CompStateIn;
00174 return(CIGI_SUCCESS);
00175 }
00176
00177
00180 Cigi_uint8 GetCompState(void)
00181 {
00182 Cigi_uint8 V3State = (Cigi_uint8)((CompState > 0x00ff) ? 0xff : CompState);
00183 return(V3State);
00184 }
00185
00186
00187
00188
00189
00210 int SetCompClassV3(const CompClassV3Grp CompClassV3In, bool bndchk=true);
00211
00212
00215 CompClassV3Grp GetCompClassV3(void) const { return(CompClassV3); }
00216
00217
00218
00219
00220
00229 int SetCompData(const Cigi_uint8 CompDataIn,
00230 const unsigned int Word,
00231 const BytePos Pos,
00232 bool bndchk=true);
00233
00234
00243 int SetCompData(const Cigi_int8 CompDataIn,
00244 const unsigned int Word,
00245 const BytePos Pos,
00246 bool bndchk=true);
00247
00248
00257 int SetCompData(const Cigi_uint16 CompDataIn,
00258 const unsigned int Word,
00259 const HalfWordPos Pos,
00260 bool bndchk=true);
00261
00262
00271 int SetCompData(const Cigi_int16 CompDataIn,
00272 const unsigned int Word,
00273 const HalfWordPos Pos,
00274 bool bndchk=true);
00275
00276
00284 int SetCompData(const Cigi_uint32 CompDataIn,
00285 const unsigned int Word,
00286 bool bndchk=true);
00287
00288
00296 int SetCompData(const Cigi_int32 CompDataIn,
00297 const unsigned int Word,
00298 bool bndchk=true);
00299
00300
00308 int SetCompData(const float CompDataIn,
00309 const unsigned int Word,
00310 bool bndchk=true);
00311
00312
00320 int SetCompData(const Cigi_uint64 CompDataIn,
00321 const unsigned int Pos,
00322 bool bndchk=true);
00323
00324
00332 int SetCompData(const double CompDataIn,
00333 const unsigned int Pos,
00334 bool bndchk=true);
00335
00336
00337
00343 Cigi_uint8 GetUCharCompData(const unsigned int Word,
00344 const BytePos Pos);
00345
00346
00352 Cigi_int8 GetCharCompData(const unsigned int Word,
00353 const BytePos Pos);
00354
00355
00361 Cigi_uint16 GetUShortCompData(const unsigned int Word,
00362 const HalfWordPos Pos);
00363
00364
00370 Cigi_int16 GetShortCompData(const unsigned int Word,
00371 const HalfWordPos Pos);
00372
00373
00378 Cigi_uint32 GetULongCompData(const unsigned int Word);
00379
00380
00385 Cigi_int32 GetLongCompData(const unsigned int Word);
00386
00387
00392 float GetFloatCompData(const unsigned int Word);
00393
00394
00399 Cigi_uint64 GetI64CompData(const unsigned int Pos);
00400
00401
00406 double GetDoubleCompData(const unsigned int Pos);
00407
00408
00409
00410
00411 protected:
00412
00413
00414 static const int CompClassCnvtSz = 16;
00415 static const CompAssocGrp CompClassV3xV1[CompClassCnvtSz];
00416 static const CompClassV2Grp CompClassV3xV2[CompClassCnvtSz];
00417
00418
00419 };
00420
00421 #endif // #if !defined(_CIGI_COMP_CTRL_V3_3_INCLUDED_)