| | |
| | | |
| | | static int expectGear; |
| | | static int upDownShift; |
| | | static int oldGear; |
| | | |
| | | static int setup; |
| | | |
| | |
| | | if (setup == 0) { |
| | | return true; |
| | | } else if (setup == 1) { |
| | | if (sensor.value != GEAR_N) |
| | | oldGear = sensor.value; |
| | | |
| | | switch (sensor.value) { |
| | | case GEAR_1: { |
| | | expectGear = GEAR_2; |
| | |
| | | } |
| | | } |
| | | } else if (setup == 2) { |
| | | if (sensor.value == GEAR_N) { |
| | | if (sensor.value == GEAR_N || sensor.value == oldGear) { |
| | | |
| | | } else if (sensor.value != expectGear) { |
| | | // 未按指令操作挡位,不合格 |
| | |
| | | return false; |
| | | } else { |
| | | // 在此挡位行驶一定距离,再执行下一个 |
| | | oldGear = expectGear; |
| | | shiftTime = *rtkTime; |
| | | setup = 3; |
| | | } |
| | | } else if (setup == 3) { |
| | | if (TimeGetDiff(&shiftTime, rtkTime) >= D_SEC(5)) { |
| | | if (TimeGetDiff(&shiftTime, rtkTime) >= D_SEC(4)) { |
| | | setup = 4; |
| | | char buff[128]; |
| | | expectGear += 0 - upDownShift; |
| | |
| | | } |
| | | } |
| | | else if (setup == 4) { |
| | | if (sensor.value == GEAR_N) { |
| | | if (sensor.value == GEAR_N || sensor.value == oldGear) { |
| | | |
| | | } else if (sensor.value != expectGear) { |
| | | // 未按指令操作挡位,不合格 |