Ejemplo n.º 1
0
void invocation(const ComType com, const uint8_t *data) {
	switch(((MessageHeader*)data)->fid) {

		case FID_GET_TEMPERATURE:
		case FID_SET_TEMPERATURE_CALLBACK_PERIOD:
		case FID_GET_TEMPERATURE_CALLBACK_PERIOD:
		case FID_SET_TEMPERATURE_CALLBACK_THRESHOLD:
		case FID_GET_TEMPERATURE_CALLBACK_THRESHOLD:
		case FID_SET_DEBOUNCE_PERIOD:
		case FID_GET_DEBOUNCE_PERIOD: {
			simple_invocation(com, data);
			break;
		}

		case FID_SET_I2C_MODE: {
			set_i2c_mode(com, (SetI2CMode*)data);
			break;
		}

		case FID_GET_I2C_MODE: {
			get_i2c_mode(com, (GetI2CMode*)data);
			break;
		}

		default: {
			BA->com_return_error(data, sizeof(MessageHeader), MESSAGE_ERROR_CODE_NOT_SUPPORTED, com);
			break;
		}
	}
}
void invocation(const ComType com, const uint8_t *data) {
	switch(((StandardMessage*)data)->header.fid) {
		case FID_SET_CONFIGURATION: {
			set_configuration(com, (SetConfiguration*)data);
			return;
		}

		case FID_GET_CONFIGURATION: {
			get_configuration(com, (GetConfiguration*)data);
			return;
		}

		case FID_SET_CALIBRATION: {
			set_calibration(com, (SetCalibration*)data);
			return;
		}

		case FID_GET_CALIBRATION: {
			get_calibration(com, (GetCalibration*)data);
			return;
		}

		default: {
			simple_invocation(com, data);
			break;
		}
	}

	if(((StandardMessage*)data)->header.fid > FID_LAST) {
		BA->com_return_error(data, sizeof(MessageHeader), MESSAGE_ERROR_CODE_NOT_SUPPORTED, com);
	}
}
void invocation(const ComType com, const uint8_t *data) {
	switch(((MessageHeader*)data)->fid) {
		case FID_GET_DISTANCE:
		case FID_GET_VELOCITY:
		case FID_SET_DISTANCE_CALLBACK_PERIOD:
		case FID_GET_DISTANCE_CALLBACK_PERIOD:
		case FID_SET_VELOCITY_CALLBACK_PERIOD:
		case FID_GET_VELOCITY_CALLBACK_PERIOD:
		case FID_SET_DISTANCE_CALLBACK_THRESHOLD:
		case FID_GET_DISTANCE_CALLBACK_THRESHOLD:
		case FID_SET_VELOCITY_CALLBACK_THRESHOLD:
		case FID_GET_VELOCITY_CALLBACK_THRESHOLD:
		case FID_SET_DEBOUNCE_PERIOD:
		case FID_GET_DEBOUNCE_PERIOD: {
			simple_invocation(com, data);
			break;
		}

		case FID_SET_MOVING_AVERAGE: {
			set_moving_average(com, (SetMovingAverage*)data);
			break;
		}

		case FID_GET_MOVING_AVERAGE: {
			get_moving_average(com, (GetMovingAverage*)data);
			break;
		}

		case FID_SET_MODE: {
			set_mode(com, (SetMode*)data);
			break;
		}

		case FID_GET_MODE: {
			get_mode(com, (GetMode*)data);
			break;
		}

		case FID_IS_LASER_ENABLED: {
			is_laser_enabled(com, (IsLaserEnabled*)data);
			break;
		}

		case FID_ENABLE_LASER: {
			BC->laser_enabled = true;
			break;
		}

		case FID_DISABLE_LASER: {
			BC->laser_enabled = false;
			break;
		}

		default: {
			BA->com_return_error(data, sizeof(MessageHeader), MESSAGE_ERROR_CODE_NOT_SUPPORTED, com);
			break;
		}
	}
}
Ejemplo n.º 4
0
void invocation(const ComType com, const uint8_t *data) {
	switch(((MessageHeader*)data)->fid) {

        case FID_GET_HEART_RATE:
        case FID_SET_HEART_RATE_CALLBACK_PERIOD:
        case FID_GET_HEART_RATE_CALLBACK_PERIOD:
        case FID_SET_HEART_RATE_CALLBACK_THRESHOLD:
        case FID_GET_HEART_RATE_CALLBACK_THRESHOLD:
        case FID_SET_DEBOUNCE_PERIOD:
		case FID_GET_DEBOUNCE_PERIOD: {
			simple_invocation(com, data);
			break;
		}
        case FID_ENABLE_BEAT_CHANGED_CALLBACK: {
            BC->beat_state_changed_callback_enabled = 1;
            BA->com_return_setter(com, data);
            break;
        }
        case FID_DISABLE_BEAT_CHANGED_CALLBACK: {
            BC->beat_state_changed_callback_enabled = 0;
            BA->com_return_setter(com, data);
            break;
        }
        case FID_IS_BEAT_CHANGED_CALLBACK_ENABLED: {
            BeatStateChangedCallback bscc;
            if(BC->beat_state_changed_callback_enabled) {
                bscc.beat_state_changed_callback_status = 1;
            }
            else {
                bscc.beat_state_changed_callback_status = 0;
            }
            BA->send_blocking_with_timeout(&bscc,
                                           sizeof(BeatStateChangedCallback),
                                           *BA->com_current);
            break;
        }
		default: {
			BA->com_return_error(data, sizeof(MessageHeader), MESSAGE_ERROR_CODE_NOT_SUPPORTED, com);
			break;
		}
	}
}
Ejemplo n.º 5
0
void invocation(const ComType com, const uint8_t *data) {
    switch(((SimpleStandardMessage*)data)->header.fid) {
    case FID_IS_OVER_CURRENT: {
        is_over_current(com, (StandardMessage*)data);
        return;
    }

    case FID_CALIBRATE: {
        calibrate();
        return;
    }

    default: {
        simple_invocation(com, data);
        break;
    }
    }

    if(((SimpleStandardMessage*)data)->header.fid > FID_LAST) {
        BA->com_return_error(data, sizeof(MessageHeader), MESSAGE_ERROR_CODE_NOT_SUPPORTED, com);
    }
}