// // Created by xemon on 18.11.22. // #include "DeviceTesting_Env.h" #include "DeviceTesting_TestingMethods.h" #include "SpiPortIO.h" #include "Accel.h" #include "SpiPortNation.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 \ ) \ bool DeviceTests_InitTestsTable( tDeviceTesting *env, tGpioPin *ignitionPin, tAdcIO *speakerAdc, tAdcIO *batteryAdc, tAtCmd *gsm, tAudioCodec *audioCodec, tAccel *accel, tAntTest *antCheck ) { DeviceTestsTableInitStatic( &env->testsTable, env->testsTableAlloc ); env->namedTests.firmware = DEVICE_TESTING_ADD_TEST( "FIRMWARE", NULL, DeviceTesting_JustOk, DEVICE_TESTING_MODE_NOT_ALWAYS | DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM ); env->namedTests.ignition = DEVICE_TESTING_ADD_TEST( "IGNITION", ignitionPin, DeviceTesting_PinTest, DEVICE_TESTING_MODE_ALWAYS | DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM ); env->namedTests.batteryConn = DEVICE_TESTING_ADD_TEST( "BAT_CONNECT", batteryAdc, DeviceTesting_AdcBatteryConnectionTest, DEVICE_TESTING_MODE_ALWAYS | DEVICE_TESTING_MODE_PERIODICAL | DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM ); env->namedTests.batteryCharge = DEVICE_TESTING_ADD_TEST( "BAT_CHARGE", batteryAdc, DeviceTesting_AdcBatteryChargeTest, DEVICE_TESTING_MODE_ALWAYS | DEVICE_TESTING_MODE_PERIODICAL | DEVICE_TESTING_MODE_IGNITION_WITHOUT_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_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_AFTER_GSM ); } env->namedTests.speakConnect = DEVICE_TESTING_ADD_TEST( "SPEAKER_CONNECT", speakerAdc, DeviceTesting_AdcSpeakerTest, DEVICE_TESTING_MODE_ALWAYS | DEVICE_TESTING_MODE_PERIODICAL | DEVICE_TESTING_MODE_IGNITION_AFTER_GSM ); env->namedTests.accel = DEVICE_TESTING_ADD_TEST( "ACCEL", accel, DeviceTesting_TestAccel, DEVICE_TESTING_MODE_NOT_ALWAYS | DEVICE_TESTING_MODE_IGNITION_WITHOUT_GSM ); env->namedTests.gsm = DEVICE_TESTING_ADD_TEST( "GSM", gsm, DeviceTesting_TestAt, DEVICE_TESTING_MODE_NOT_ALWAYS | DEVICE_TESTING_MODE_IGNITION_AFTER_GSM ); env->namedTests.audioCodec = DEVICE_TESTING_ADD_TEST( "AUDIO_CODEC", audioCodec, DeviceTesting_TestAudioCodec, DEVICE_TESTING_MODE_NOT_ALWAYS | DEVICE_TESTING_MODE_IGNITION_AFTER_GSM ); return true; }