Changeset 11126 in ntrip for trunk/BNC/src/RTCM3/crsEncoder.cpp
- Timestamp:
- Oct 24, 2026, 11:14:36 PM (2 weeks ago)
- File:
-
- 1 edited
-
trunk/BNC/src/RTCM3/crsEncoder.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/crsEncoder.cpp
r10551 r11126 11 11 using namespace std; 12 12 13 // Length of a name for the 5-bit length field: up to the terminating 0, 14 // at most 31 characters 15 //////////////////////////////////////////////////////////////////////////// 16 static int nameLength(const char* name, size_t bufSize) { 17 size_t n = strnlen(name, bufSize); 18 return (n > 31) ? 31 : int(n); 19 } 20 13 21 // build up RTCM3 for serviceCrs 14 22 //////////////////////////////////////////////////////////////////////////// … … 17 25 INITBLOCK 18 26 ADDBITS(12, 1300) 19 int N = sizeof(serviceCrs._name) / sizeof(serviceCrs._name[0]); 20 if (N > 31) {N = 31;} 27 int N = nameLength(serviceCrs._name, sizeof(serviceCrs._name)); 21 28 ADDBITS(5, N) 22 29 for(int i = 0; i < N; i++) { … … 35 42 36 43 ADDBITS(12, 1302) 37 int N = sizeof(rtcmCrs._name) / sizeof(rtcmCrs._name[0]); 38 if (N > 31) {N = 31;} 44 int N = nameLength(rtcmCrs._name, sizeof(rtcmCrs._name)); 39 45 ADDBITS(5, N) 40 46 for(int i = 0; i < N; i++) { … … 44 50 ADDBITS(5, rtcmCrs._plateNumber) 45 51 int dblinknum = rtcmCrs._databaseLinks.size(); 52 if (dblinknum > 7) {dblinknum = 7;} // 3 bits 46 53 ADDBITS(3, dblinknum); 47 if (dblinknum) {48 for(int d = 0; d <dblinknum; d++) {49 N = sizeof(rtcmCrs._databaseLinks[d]) / sizeof(rtcmCrs._databaseLinks[d][0]);50 for(int i = 0; i < N; i++) {51 ADDBITS(8, rtcmCrs._databaseLinks[d].toLatin1()[i])52 }54 for(int d = 0; d < dblinknum; d++) { 55 QByteArray dblink = rtcmCrs._databaseLinks[d].toLatin1(); 56 N = nameLength(dblink.constData(), dblink.size()); 57 ADDBITS(5, N) 58 for(int i = 0; i < N; i++) { 59 ADDBITS(8, dblink[i]) 53 60 } 54 61 } … … 65 72 66 73 ADDBITS(12, 1301) 67 int N = sizeof(helmertPar._sourceName) / sizeof(helmertPar._sourceName[0]); 68 if (N > 31) {N = 31;} 74 int N = nameLength(helmertPar._sourceName, sizeof(helmertPar._sourceName)); 69 75 ADDBITS(5, N) 70 76 for(int i = 0; i < N; i++) { 71 77 ADDBITS(8, helmertPar._sourceName[i]) 72 78 } 73 N = sizeof(helmertPar._targetName) / sizeof(helmertPar._targetName[0]); 74 if (N > 31) {N = 31;} 79 N = nameLength(helmertPar._targetName, sizeof(helmertPar._targetName)); 75 80 ADDBITS(5, N) 76 81 for(int i = 0; i < N; i++) {
Note:
See TracChangeset
for help on using the changeset viewer.
