134 lines
3.7 KiB
C
134 lines
3.7 KiB
C
//
|
|
// Created by xemon on 18.11.22.
|
|
//
|
|
|
|
|
|
#include "DeviceTesting_TestingMethods.h"
|
|
#include "AtGsmTelitLe910_Gnss.h"
|
|
|
|
eDeviceTestingCode DeviceTesting_AntTest(tAntTest *antTest) {
|
|
|
|
if (*antTest->mode == false) {
|
|
uint32_t sum = 0;
|
|
uint32_t data[3];
|
|
AdcGet(antTest->externalAdc, 1000);
|
|
for (uint8_t i = 0; i < 3; i++) {
|
|
data[i] = AdcGet(antTest->externalAdc, 1000);
|
|
}
|
|
for (uint8_t i = 0; i < 3; i++) {
|
|
sum += data[i];
|
|
}
|
|
|
|
uint16_t statusAntAdcConvertedValue = sum / sizeof(data);
|
|
if (statusAntAdcConvertedValue < 50) {
|
|
return DEVICE_TESTING_CODE_NOT_CONNECTED;
|
|
}
|
|
|
|
if (statusAntAdcConvertedValue > 1000) {
|
|
return DEVICE_TESTING_CODE_SHORT_CIRCUIT;
|
|
}
|
|
|
|
return DEVICE_TESTING_CODE_CONNECTED;
|
|
} else {
|
|
return DEVICE_TESTING_CODE_INPUT_ANTENA_OK;
|
|
// eTelitLe910_ExternalLnaSupportMode extAntState = 0;
|
|
//
|
|
// if (AtGsmTelitLe910_Gnss_GetExternalLnaSupport(antTest->gsmAt, &extAntState) == AT_OK) {
|
|
//
|
|
// if (extAntState == TELIT_LE910_EXTERNAL_LNA_NOT_SUPPORT) {
|
|
// return DEVICE_TESTING_CODE_NOT_CONNECTED;
|
|
// } else {
|
|
// return DEVICE_TESTING_CODE_INPUT_ANTENA_OK;
|
|
// }
|
|
// } else {
|
|
// return DEVICE_TESTING_CODE_NOT_CONNECTED;
|
|
// }
|
|
}
|
|
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_AdcSpeakerTest(tAdcIO *speakerAdc) {
|
|
uint16_t statusSpeakerAdcConvertedValue = AdcGet(speakerAdc, 1000);
|
|
|
|
if (statusSpeakerAdcConvertedValue < 1000) {
|
|
return DEVICE_TESTING_CODE_NOT_CONNECTED;
|
|
}
|
|
|
|
return DEVICE_TESTING_CODE_CONNECTED;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_AdcBatteryConnectionTest(tAdcIO *batteryAdc) {
|
|
static const tries = 10;
|
|
|
|
uint64_t batVoltage = 0;
|
|
for (uint8_t try = 0; try < tries; try++) {
|
|
uint16_t single = AdcGet(batteryAdc, 1000);
|
|
batVoltage += single;
|
|
}
|
|
batVoltage /= tries;
|
|
|
|
// uint16_t batVoltage = AdcGet(batteryAdc, 1000);
|
|
|
|
if (batVoltage < 1000) {
|
|
return DEVICE_TESTING_CODE_NOT_CONNECTED;
|
|
}
|
|
|
|
return DEVICE_TESTING_CODE_CONNECTED;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_AdcBatteryChargeTest(tAdcIO *batteryAdc) {
|
|
static const tries = 10;
|
|
|
|
uint64_t batVoltage = 0;
|
|
for (uint8_t try = 0; try < tries; try++) {
|
|
uint16_t single = AdcGet(batteryAdc, 1000);
|
|
batVoltage += single;
|
|
}
|
|
batVoltage /= tries;
|
|
|
|
|
|
if (batVoltage < 2400) {
|
|
return DEVICE_TESTING_CODE_ERROR;
|
|
} else if (batVoltage < 3900) {
|
|
return DEVICE_TESTING_CODE_BATTERY_PRE_CHARGE;
|
|
} else if (batVoltage < 4000) {
|
|
return DEVICE_TESTING_CODE_BATTERY_FAST_CHARGE;
|
|
} else if (batVoltage < 4500) {
|
|
return DEVICE_TESTING_CODE_BATTERY_CHARGE_DONE;
|
|
} else {
|
|
return DEVICE_TESTING_CODE_ERROR;
|
|
}
|
|
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_PinTest(tGpioPin *gpioPin) {
|
|
return GpioPinGet(gpioPin) ? DEVICE_TESTING_CODE_CONNECTED : DEVICE_TESTING_CODE_NOT_CONNECTED_OK;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_TestAt(tAtCmd *atCmd) {
|
|
return AtCmd(atCmd) == AT_OK ? DEVICE_TESTING_CODE_PASSED : DEVICE_TESTING_CODE_ERROR;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_TestAudioCodec(tAudioCodec *audioCodec) {
|
|
return AudioCodecTestStatus(audioCodec) ? DEVICE_TESTING_CODE_PASSED : DEVICE_TESTING_CODE_ERROR;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_TestAccel(tAccel *accel) {
|
|
if (!accel->errorDataFlag) {
|
|
return DEVICE_TESTING_CODE_ERROR;
|
|
}
|
|
|
|
// float len = vector3Len(accel->current);
|
|
//
|
|
// if ((len < 0.9) || (len > 1.1)) {
|
|
// return DEVICE_TESTING_CODE_ERROR;
|
|
// }
|
|
|
|
return DEVICE_TESTING_CODE_PASSED;
|
|
}
|
|
|
|
eDeviceTestingCode DeviceTesting_JustOk(void *nil) {
|
|
return DEVICE_TESTING_CODE_PASSED;
|
|
}
|
|
|