void
checkMinMaxPosFire(char SWPoscarMin, char SWPoscarMax, int *craneKnownFlags, 
        int *cranePresentFlags) {

    if(state == RUNNING) {
        if(GET_BIT(*craneKnownFlags, SWPOSCARMINBIT) && 
                GET_BIT(*craneKnownFlags, SWPOSCARMAXBIT)) {
            if(GET_BIT(*cranePresentFlags, SWPOSCARMINBIT) && 
                    GET_BIT(*cranePresentFlags, SWPOSCARMAXBIT)) {
                if(SWPoscarMin == 1 || SWPoscarMax == 1) {
                    count++;
                }
                else {
                    count = 0;
                }

                if(count > 10) {
                    SET_BIT_TRUE(*craneKnownFlags, EMSTOPCHECKMINMAXBIT);
                    SET_BIT_TRUE(*cranePresentFlags, EMSTOPCHECKMINMAXBIT);
                    initCheckMinMaxPos();
                }
            }
        }
    }

    if(GET_BIT(*craneKnownFlags, SWPOSCARMINBIT) && 
            GET_BIT(*craneKnownFlags, SWPOSCARMAXBIT) && 
            !GET_BIT(*craneKnownFlags, EMSTOPCHECKMINMAXBIT)) {
        SET_BIT_TRUE(*craneKnownFlags, EMSTOPCHECKMINMAXBIT);
    }
}
 void StandSerialProtocol::SetSSFSIsEncrypt(StandSerialFrameStruct *SSFS,U8 IsEncrypt)
 {
     if(IsEncrypt)
     {
         SET_BIT_TRUE(SSFS->Property,4);
     }
     else
     {
         CLEAR_BIT_TRUE(SSFS->Property,4);
     }
 }
void
controlBrakeFire(double posDesired, char brakeCond, char isKnown, char *brake, 
        int hasEventFlags, int *craneKnownFlags, int *cranePresentFlags) {

    char res = 0;
    if(state == RUNNING) {
        if(GET_BIT(*craneKnownFlags, ISKNOWNBIT) &&
               GET_BIT(*craneKnownFlags, BRAKECONDITIONBIT)) {

            if(GET_BIT(*cranePresentFlags, ISKNOWNBIT)) {
                if(isKnown == 1) {
                    res = 1;
                }
            }
            if(GET_BIT(*cranePresentFlags, BRAKECONDITIONBIT)) {
                if(brakeCond == 1) {
                    res = 1;
                }
            }

            if(GET_BIT(hasEventFlags, POSDESIREDBIT))  {
                value = 0;
            }

            if(res == 1) {
                value = 1;
            }

            if(GET_BIT(hasEventFlags, SHUTDOWNBIT)) {
                value = 1;
            }

            *brake = value;
            SET_BIT_TRUE(*craneKnownFlags, BRAKEBIT);
            SET_BIT_TRUE(*cranePresentFlags, BRAKEBIT);
        }
    }
}