UveosOnNation_VEGA_DeviceTe.../Src/DeviceTesting_InitTestsTable.c

123 lines
3.7 KiB
C

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