diff --git a/AiQ Tests/AiQTests.cs b/AiQ Tests/AiQTests.cs new file mode 100644 index 0000000..f33d62c --- /dev/null +++ b/AiQ Tests/AiQTests.cs @@ -0,0 +1,162 @@ +using AiQ_GUI; +using AiQ_GUI.AiQ_Tests; +public class AiQTests +{ + public static async void AiQPreTest() + { + + if (!await CameraModules.SetZoomLockOn(MainForm.Instance.CamOnTest.IP)) + Helper.RestartApp(); + + string LEDreply = await FlexiAPI.APIHTTPLED(MainForm.Instance.CamOnTest.IP, LEDPOWER.MID); // Set LED's to medium (0x30) + + if (!LEDreply.Contains("Power levels set successfully")) + MainForm.Instance.AddToActionsList($"LED level could not be set: {LEDreply}", Level.ERROR); + + await CameraModules.FactoryResetModules(MainForm.Instance.CamOnTest.IP); // Reset both modules and double check + + MainForm.Instance.sshData = SSH.CollectSSHData(MainForm.Instance.CamOnTest.IP); // SSH into camera to get Vaxtor packages, filesystem size and if tailscale is installed. + await SSH.CheckFSSize(MainForm.Instance.CamOnTest.IP, MainForm.Instance.LblFilesystemSize, MainForm.Instance.sshData); // Check Filesystem size is between 100GB & 150GB + + Helper.DCPowerCheck(MainForm.Instance.LblDC); // If the camera is DC powered check it is within limits + + // Requests, deserialises and checks the diagnostics API is correct + await TestingFunctions.CheckDiagsAPIPt1(); + + // Check module has gone to default config + CameraModules.CheckCamModule(TestingFunctions.DiagsAPI.IRmodule, MainForm.Instance.LblIRModule, MainForm.Instance.CamOnTest); // IR + CameraModules.CheckCamModule(TestingFunctions.DiagsAPI.OVmodule, MainForm.Instance.LblOVModule, MainForm.Instance.CamOnTest); // OV + + // Check voltage and current are OK. + LED.CheckLEDs(TestingFunctions.DiagsAPI.LedVoltage, MainForm.Instance.LblLEDV, "V", CameraAccessInfo.LED_V); // Voltage + LED.CheckLEDs(TestingFunctions.DiagsAPI.LedCurrent, MainForm.Instance.LblLEDI, "mA", CameraAccessInfo.LED_I); // Current + + MainForm.Instance.Refresh(); // Make sure all labels are updated before checking them + + // If there are any actions identified then fail the test. + // If any labels are red then fail. Only labels in panel so can foreach on labels not controls + if (MainForm.Instance.RhTxBxActions.Text.Length < 2 && MainForm.Instance.PnlLbls.Controls.OfType