static bool param_check(__pdata enum ParamID id, __data uint32_t val) { // parameter value out of range - fail if (id >= PARAM_MAX) return false; switch (id) { case PARAM_FORMAT: return false; case PARAM_SERIAL_SPEED: return serial_device_valid_speed(val); case PARAM_AIR_SPEED: if (val > 256) return false; break; case PARAM_NETID: // all values are OK return true; case PARAM_TXPOWER: if (val > BOARD_MAXTXPOWER) return false; break; case PARAM_ECC: case PARAM_OPPRESEND: // boolean 0/1 only if (val > 1) return false; break; case PARAM_MAVLINK: if (val > 2) return false; break; case PARAM_MAX_WINDOW: // 131 milliseconds == 0x1FFF 16 usec ticks, // which is the maximum we can handle with a 13 // bit trailer for window remaining if (val > 131) return false; break; default: // no sanity check for this value break; } return true; }
static bool param_check(__pdata enum ParamID id, __data uint32_t val) { // parameter value out of range - fail if (id >= PARAM_MAX) return false; switch (id) { case PARAM_FORMAT: return false; case PARAM_SERIAL_SPEED: return serial_device_valid_speed(val); case PARAM_AIR_SPEED: if (val > 256) return false; break; case PARAM_NETID: // all values are OK return true; case PARAM_TXPOWER: if (val > BOARD_MAXTXPOWER) return false; break; case PARAM_ECC: // 1 = Golay // 2 = Golay + interleaving if (val > 0) feature_golay=true; else feature_golay=false; if (val == 2) feature_golay_interleaving=true; else feature_golay_interleaving=false; if (val > 2) return false; break; case PARAM_MAVLINK: case PARAM_OPPRESEND: // boolean 0/1 only if (val > 1) return false; break; default: // no sanity check for this value break; } return true; }