// // 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; }