299 lines
10 KiB
C
299 lines
10 KiB
C
//
|
|
// Created by xemon on 18.11.22.
|
|
//
|
|
|
|
#include "DeviceTesting_Env.h"
|
|
#include "DeviceTesting_TestingMethods.h"
|
|
#include "SpiPortIO.h"
|
|
#include "Accel.h"
|
|
#include "SpiPortArtery.h"
|
|
#include "string.h"
|
|
|
|
|
|
#define DEVICE_TESTING_ADD_TEST(NAME, TEST_ENV, TEST_METHOD, MODES) \
|
|
DeviceTestsTableAdd( \
|
|
&env->testsTable, \
|
|
DEVICE_TEST_NAME(NAME), \
|
|
TEST_ENV, \
|
|
(TestMethod) (TEST_METHOD), \
|
|
MODES \
|
|
) \
|
|
|
|
|
|
uint16_t *getResultFix(tDeviceTestsTable *testsTable, char *testName, uint8_t testNameLength) {
|
|
|
|
uint16_t *testResultFix = NULL;
|
|
|
|
for (uint16_t i = 0; i < testsTable->count; ++i) {
|
|
if ((memcmp(testsTable->items[i].name.str, testName, testNameLength) == 0) &&
|
|
(testNameLength == testsTable->items[i].name.length)) {
|
|
testResultFix = &testsTable->items[i].resultFix;
|
|
return testResultFix;
|
|
}
|
|
|
|
}
|
|
|
|
return testResultFix;
|
|
}
|
|
|
|
|
|
bool DeviceTests_InitTestsTable(
|
|
tDeviceTesting *env,
|
|
tGpioPin *ignitionPin,
|
|
tSpekTestPower *spekTestPower,
|
|
tBipPins *bipTestDiagnost,
|
|
tBatteryPower *batteryPower,
|
|
tAtCmd *gsm,
|
|
tAudioCodec *audioCodec,
|
|
tAccel *accel,
|
|
tAntTest *antCheck,
|
|
tDeviceStorage *deviceStorage,
|
|
tModemVersionRevisionTest *modemVersionRevisionTest,
|
|
tAmplifier *amplifier,
|
|
tCanTest *canTest
|
|
) {
|
|
|
|
DeviceTestsTableInitStatic(
|
|
&env->testsTable,
|
|
env->testsTableAlloc
|
|
);
|
|
|
|
env->namedTests.can = DEVICE_TESTING_ADD_TEST(
|
|
"CAN",
|
|
canTest,
|
|
DeviceTesting_CanTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.firmware = DEVICE_TESTING_ADD_TEST(
|
|
"FIRMWARE", NULL, DeviceTesting_JustOk,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.ignition = DEVICE_TESTING_ADD_TEST(
|
|
"IGNITION",
|
|
ignitionPin,
|
|
DeviceTesting_IgnitionTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.batteryConn = DEVICE_TESTING_ADD_TEST(
|
|
"BAT_CONNECT",
|
|
batteryPower,
|
|
DeviceTesting_AdcBatteryConnectionTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.batteryCharge = DEVICE_TESTING_ADD_TEST(
|
|
"BAT_CHARGE",
|
|
batteryPower,
|
|
DeviceTesting_AdcBatteryChargeTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.batteryCharge = DEVICE_TESTING_ADD_TEST(
|
|
"BAT_VOLTAGE",
|
|
batteryPower,
|
|
DeviceTesting_AdcBatteryVoltageTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
if (*antCheck->mode == false) {
|
|
env->namedTests.gnssAnt = DEVICE_TESTING_ADD_TEST(
|
|
"GNSS_ANT",
|
|
antCheck,
|
|
DeviceTesting_AntTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
} else {
|
|
env->namedTests.gnssAnt = DEVICE_TESTING_ADD_TEST(
|
|
"GNSS_ANT",
|
|
antCheck,
|
|
DeviceTesting_AntTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
}
|
|
|
|
env->namedTests.speakConnect = DEVICE_TESTING_ADD_TEST(
|
|
"SPEAKER_CONNECT",
|
|
spekTestPower,
|
|
DeviceTesting_AdcSpeakerTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.bipConnect = DEVICE_TESTING_ADD_TEST(
|
|
"BIP_CONNECT",
|
|
bipTestDiagnost,
|
|
DeviceTesting_BipConnectTest,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.accel = DEVICE_TESTING_ADD_TEST(
|
|
"ACCEL",
|
|
accel,
|
|
DeviceTesting_TestAccel,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.gsm = DEVICE_TESTING_ADD_TEST(
|
|
"GSM",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_TestAt,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.audioCodec = DEVICE_TESTING_ADD_TEST(
|
|
"AUDIO_CODEC", audioCodec,
|
|
DeviceTesting_TestAudioCodec,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.vin = DEVICE_TESTING_ADD_TEST(
|
|
"VIN",
|
|
deviceStorage,
|
|
DeviceTesting_VIN,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.accel_calib = DEVICE_TESTING_ADD_TEST(
|
|
"ACCEL_CALIB",
|
|
deviceStorage,
|
|
DeviceTesting_CALIB_ACCEL,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.eol = DEVICE_TESTING_ADD_TEST(
|
|
"EOL",
|
|
&env->testsTable,
|
|
DeviceTesting_EOL,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.tele = DEVICE_TESTING_ADD_TEST(
|
|
"TELE",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_Telematica,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.modemSoftRevision = DEVICE_TESTING_ADD_TEST(
|
|
"MODEM_SOFT_REV",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_ModemSoftwareValidation,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.modemSertRevision = DEVICE_TESTING_ADD_TEST(
|
|
"MODEM_CERT_REV",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_ModemCertValidation,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.modemAudiotRevision = DEVICE_TESTING_ADD_TEST(
|
|
"MODEM_AUDIO_FILE",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_ModemAudioFileValidation,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.modemAmplifare = DEVICE_TESTING_ADD_TEST(
|
|
"AMPLIFIER",
|
|
amplifier,
|
|
DeviceTesting_Aamplifier,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM |
|
|
DEVICE_TESTING_MODE_IGNITION_AFTER_GSM
|
|
);
|
|
|
|
env->namedTests.modemSimEra = DEVICE_TESTING_ADD_TEST(
|
|
"SIM_ERA",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_SimEra,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM
|
|
);
|
|
|
|
env->namedTests.modemSimComers = DEVICE_TESTING_ADD_TEST(
|
|
"SIM_COMERS",
|
|
modemVersionRevisionTest,
|
|
DeviceTesting_SimComers,
|
|
DEVICE_TESTING_MODE_ALWAYS |
|
|
DEVICE_TESTING_MODE_PERIODICAL |
|
|
DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM
|
|
);
|
|
|
|
// modemVersionRevisionTest->modemDataCollector->modemVersionRevision.deviceTestFix_ModemCertValidation = getResultFix(&env->testsTable, "MODEM_CERT_REV",
|
|
//// sizeof("MODEM_CERT_REV") - 1);
|
|
//
|
|
// modemVersionRevisionTest->modemDataCollector->modemVersionRevision.deviceTestFix_ModemAudioFileValidation = getResultFix(&env->testsTable, "MODEM_AUDIO_FILE",
|
|
// sizeof("MODEM_AUDIO_FILE") - 1);
|
|
//
|
|
// modemVersionRevisionTest->modemDataCollector->modemVersionRevision.deviceTestFix_ModemValidation = getResultFix(&env->testsTable, "GSM",
|
|
// sizeof("GSM") - 1);
|
|
|
|
return true;
|
|
|
|
} |