/**
  * Adds a field to the message. Unknown fields are rejected
  * @return bool if field was known to the message
  */
 bool addField(unsigned char fieldDefNum, unsigned char size, unsigned char baseType, unsigned char arch, char * data) {
     //TODO: Compare size with expected size
     //TODO: Compare baseType with expected baseType
     bool fieldWasAdded = true;
     switch (fieldDefNum) {
         case 0: SetSoftwareVersion(read0x84(data,arch));
             break;
         case 1: SetHardwareVersion((unsigned char)data[0]);
             break;
         default:
             fieldWasAdded = false;
     }
     return fieldWasAdded;
 };
예제 #2
0
    /**
     * Adds a field to the message. Unknown fields are rejected
     * @return bool if field was known to the message
     */
    bool addField(unsigned char fieldDefNum, unsigned char size, unsigned char baseType, unsigned char arch, char * data) {
        //TODO: Compare size with expected size
        //TODO: Compare baseType with expected baseType
        bool fieldWasAdded = true;
        switch (fieldDefNum) {
        case 253: setTimestamp(read0x86(data,arch));
                 break;
        case 0: setPositionLat(read0x85(data,arch));
                 break;
        case 1: setPositionLong(read0x85(data,arch));
                 break;
        case 2: setAltitude(read0x88(data,arch,5,500,0x84));
                 break;
        case 3: setHeartRate(read0x02(data,arch));
                 break;
        case 4: setCadence(read0x02(data,arch));
                 break;
        case 5: setDistance(read0x88(data,arch,100,0,0x86));
                 break;
        case 6: setSpeed(read0x88(data,arch,1000,0,0x84));
                 break;
        case 7: setPower(read0x84(data,arch));
                 break;
        case 9: setGrade(read0x88(data,arch,100,0,0x83));
                 break;
        case 10: setResistance(read0x02(data,arch));
                 break;
        case 11: setTimeFromCourse(read0x88(data,arch,1000,0,0x85));
                 break;
        case 12: setCycleLength(read0x88(data,arch,100,0,0x02));
                 break;
        case 13: setTemperature(read0x01(data,arch));
                 break;
        case 17: setNumSpeed1s(read0x02(data,arch));
                 break;
        case 18: setCycles(read0x02(data,arch));
                 break;
        case 19: setTotalCycles(read0x86(data,arch));
                 break;
        case 28: setCompressedAccumulatedPower(read0x84(data,arch));
                 break;
        case 29: setAccumulatedPower(read0x86(data,arch));
                 break;
        case 30: setLeftRightBalance(read0x02(data,arch));
                 break;
        case 31: setGpsAccuracy(read0x02(data,arch));
                 break;
        case 32: setVerticalSpeed(read0x88(data,arch,1000,0,0x83));
                 break;
        case 33: setCalories(read0x84(data,arch));
                 break;
        case 43: setLeftTorqueEffectiveness(read0x88(data,arch,2,0,0x02));
                 break;
        case 44: setRightTorqueEffectiveness(read0x88(data,arch,2,0,0x02));
                 break;
        case 45: setLeftPedalSmoothness(read0x88(data,arch,2,0,0x02));
                 break;
        case 46: setRightPedalSmoothness(read0x88(data,arch,2,0,0x02));
                 break;
        case 47: setCombinedPedalSmoothness(read0x88(data,arch,2,0,0x02));
                 break;
        case 52: setCadence256(read0x88(data,arch,256,0,0x84));
                 break;


            default:
                fieldWasAdded = false;
                break;
        }
        return fieldWasAdded;
    };