00001
00059 #if !defined(_CIGI_SHORT_COMP_CTRL_V3_INCLUDED_)
00060 #define _CIGI_SHORT_COMP_CTRL_V3_INCLUDED_
00061
00062 #include "CigiBaseCompCtrl.h"
00063
00064
00065
00066 class CIGI_SPEC CigiShortCompCtrlV3 : public CigiBaseCompCtrl
00067 {
00068
00069 public:
00070
00071
00072
00073
00076 CigiShortCompCtrlV3();
00077
00078
00081 virtual ~CigiShortCompCtrlV3();
00082
00083
00084
00085
00086
00097 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const;
00098
00099
00109 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec);
00110
00111
00123 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00124 CigiCnvtInfoType::Type &CnvtInfo);
00125
00126
00127
00128
00129
00130
00131
00132
00139 int SetInstanceID(const Cigi_uint16 InstanceIDIn, bool bndchk=true)
00140 {
00141 InstanceID = InstanceIDIn;
00142 return(CIGI_SUCCESS);
00143 }
00144
00145
00148 Cigi_uint16 GetInstanceID(void) const { return(InstanceID); }
00149
00150
00151
00152
00153
00160 int SetCompState(const Cigi_uint8 CompStateIn, bool bndchk=true)
00161 {
00162 CompState = (Cigi_uint16)CompStateIn;
00163 return(CIGI_SUCCESS);
00164 }
00165
00166
00169 Cigi_uint8 GetCompState(void)
00170 {
00171 Cigi_uint8 tState = (Cigi_uint8)((CompState > 0x00ff) ?
00172 0x00ff : CompState);
00173
00174 return(tState);
00175 }
00176
00177
00178
00179
00180
00201 int SetCompClassV3(const CompClassV3Grp CompClassV3In, bool bndchk=true);
00202
00203
00206 CompClassV3Grp GetCompClassV3(void) const { return(CompClassV3); }
00207
00208
00209
00210
00211
00220 int SetCompData(const Cigi_uint8 CompDataIn,
00221 const unsigned int Word,
00222 const BytePos Pos,
00223 bool bndchk=true);
00224
00225
00234 int SetCompData(const Cigi_int8 CompDataIn,
00235 const unsigned int Word,
00236 const BytePos Pos,
00237 bool bndchk=true);
00238
00239
00248 int SetCompData(const Cigi_uint16 CompDataIn,
00249 const unsigned int Word,
00250 const HalfWordPos Pos,
00251 bool bndchk=true);
00252
00253
00262 int SetCompData(const Cigi_int16 CompDataIn,
00263 const unsigned int Word,
00264 const HalfWordPos Pos,
00265 bool bndchk=true);
00266
00267
00275 int SetCompData(const Cigi_uint32 CompDataIn,
00276 const unsigned int Word,
00277 bool bndchk=true);
00278
00279
00287 int SetCompData(const Cigi_int32 CompDataIn,
00288 const unsigned int Word,
00289 bool bndchk=true);
00290
00291
00299 int SetCompData(const float CompDataIn,
00300 const unsigned int Word,
00301 bool bndchk=true);
00302
00303
00311 int SetCompData(const Cigi_uint64 CompDataIn,
00312 const unsigned int Pos,
00313 bool bndchk=true);
00314
00315
00323 int SetCompData(const double CompDataIn,
00324 const unsigned int Pos,
00325 bool bndchk=true);
00326
00327
00328
00334 Cigi_uint8 GetUCharCompData(const unsigned int Word,
00335 const BytePos Pos);
00336
00337
00343 Cigi_int8 GetCharCompData(const unsigned int Word,
00344 const BytePos Pos);
00345
00346
00352 Cigi_uint16 GetUShortCompData(const unsigned int Word,
00353 const HalfWordPos Pos);
00354
00355
00361 Cigi_int16 GetShortCompData(const unsigned int Word,
00362 const HalfWordPos Pos);
00363
00364
00369 Cigi_uint32 GetULongCompData(const unsigned int Word);
00370
00371
00376 Cigi_int32 GetLongCompData(const unsigned int Word);
00377
00378
00383 float GetFloatCompData(const unsigned int Word);
00384
00385
00390 Cigi_uint64 GetI64CompData(const unsigned int Pos);
00391
00392
00397 double GetDoubleCompData(const unsigned int Pos);
00398
00399
00400
00401
00402 protected:
00403
00404
00405 static const int CompClassCnvtSz = 14;
00406 static const CompAssocGrp CompClassV3xV1[CompClassCnvtSz];
00407 static const CompClassV2Grp CompClassV3xV2[CompClassCnvtSz];
00408
00409
00410 };
00411
00412 #endif // #if !defined(_CIGI_SHORT_COMP_CTRL_V3_INCLUDED_)