Ignore:
Timestamp:
Sep 25, 2024, 1:15:37 PM (6 months ago)
Author:
stuerze
Message:

Helmert parameter encoding/decoding added + some re-organisation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h

    r10533 r10545  
    407407  virtual CodeType    rnxTypeToCodeType(char system, std::string type) = 0;
    408408
    409 #define STOREBITS \
    410   while(numbits >= 8) { \
    411     if(!size) return 0; \
    412     *(buffer++) = bitbuffer>>(numbits-8); \
    413     numbits -= 8; \
    414     ++ressize; \
    415     --size; \
    416   }
    417 
    418 #define ADDBITS(a, b) { \
    419     bitbuffer = (bitbuffer<<(a))|((b)&((1<<a)-1)); \
    420     numbits += (a); \
    421     STOREBITS \
    422   }
    423 
    424 #define STARTDATA \
    425   size_t ressize=0; \
    426   char *blockstart=0; \
    427   int numbits=0; \
    428   uint64_t bitbuffer=0;
    429 
    430 #define INITBLOCK \
    431   numbits = 0; \
    432   blockstart = buffer; \
    433   ADDBITS(8, 0xD3) \
    434   ADDBITS(6, 0) \
    435   ADDBITS(10, 0)
    436 
    437 #define ENDBLOCK \
    438   if(numbits) { ADDBITS((8-numbits), 0) } { \
    439     int len = buffer-blockstart-3; \
    440     blockstart[1] |= len>>8; \
    441     blockstart[2] = len; \
    442     if(len > 1023) \
    443       return 0; \
    444     len = CRC24(len+3, (const unsigned char *) blockstart); \
    445     ADDBITS(24, len) \
    446   }
    447 
    448 #define SCALEADDBITS(a, b, c) ADDBITS(a, (int64_t)(c > 0 ? b*c+0.5 : b*c-0.5))
    449 
    450409#define MPI         3.141592653589793
    451410
Note: See TracChangeset for help on using the changeset viewer.