Dynamic labels & Changed color to light green
- Filesystem size - Flexi version - Flexi Revision - MAC - Timestamp - Temperature - ZoomLock - Serial and model Number - Licenses - CPU usage
This commit is contained in:
@@ -2,9 +2,8 @@
|
|||||||
using AiQ_GUI.AiQ_Tests;
|
using AiQ_GUI.AiQ_Tests;
|
||||||
public class AiQTests
|
public class AiQTests
|
||||||
{
|
{
|
||||||
public static async void AiQPreTest()
|
public static async Task AiQPreTest()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!await CameraModules.SetZoomLockOn(MainForm.Instance.CamOnTest.IP))
|
if (!await CameraModules.SetZoomLockOn(MainForm.Instance.CamOnTest.IP))
|
||||||
Helper.RestartApp();
|
Helper.RestartApp();
|
||||||
|
|
||||||
@@ -60,9 +59,8 @@ public class AiQTests
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async void AiQFinalTest()
|
public static async Task AiQFinalTest()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (MainForm.Instance.LblTestTubePing.Text == "❌") // No test tube so test like an IQ
|
if (MainForm.Instance.LblTestTubePing.Text == "❌") // No test tube so test like an IQ
|
||||||
{
|
{
|
||||||
string LEDreply = await FlexiAPI.APIHTTPLED(MainForm.Instance.CamOnTest.IP, LEDPOWER.SAFE); // Set LED's to safe (0x0E) to help with eye safety and trim check.
|
string LEDreply = await FlexiAPI.APIHTTPLED(MainForm.Instance.CamOnTest.IP, LEDPOWER.SAFE); // Set LED's to safe (0x0E) to help with eye safety and trim check.
|
||||||
@@ -70,11 +68,9 @@ public class AiQTests
|
|||||||
if (!LEDreply.Contains("Power levels set successfully"))
|
if (!LEDreply.Contains("Power levels set successfully"))
|
||||||
MainForm.Instance.AddToActionsList($"LED level could not be set: {LEDreply}", Level.ERROR);
|
MainForm.Instance.AddToActionsList($"LED level could not be set: {LEDreply}", Level.ERROR);
|
||||||
}
|
}
|
||||||
else if (!await TestTube.CheckInTestTube(MainForm.Instance.CamOnTest.IP)) // Sets LED's to medium power after checking it is in the test tube
|
//else if (!await TestTube.CheckInTestTube(MainForm.Instance.CamOnTest.IP)) // Sets LED's to medium power after checking it is in the test tube
|
||||||
await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Camera not in test tube");
|
// await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Camera not in test tube");
|
||||||
|
|
||||||
Task VisCheck = Helper.VisualCheck(MainForm.Instance.BtnStartTest);
|
Task VisCheck = Helper.VisualCheck(MainForm.Instance.BtnStartTest);
|
||||||
|
|
||||||
if (!await CameraModules.ZoomModules("1F40", MainForm.Instance.CamOnTest.IP)) // Zoom to 8000 (1F40h) at the same time.
|
if (!await CameraModules.ZoomModules("1F40", MainForm.Instance.CamOnTest.IP)) // Zoom to 8000 (1F40h) at the same time.
|
||||||
await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Could not zoom modules to 8000");
|
await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Could not zoom modules to 8000");
|
||||||
|
|
||||||
|
|||||||
@@ -22,90 +22,77 @@ namespace AiQ_GUI.AiQ_Tests
|
|||||||
{
|
{
|
||||||
DiagsAPI = await FlexiAPI.GetDiagnostics(MainForm.Instance.CamOnTest.IP); // Diagnostic API request
|
DiagsAPI = await FlexiAPI.GetDiagnostics(MainForm.Instance.CamOnTest.IP); // Diagnostic API request
|
||||||
|
|
||||||
MainForm.Instance.lblFlexiVer.Text += DiagsAPI.FlexiVersion; // Check Flexi Version
|
// Check Flexi Version
|
||||||
|
string flexiVerText = "Flexi Version = " + DiagsAPI.FlexiVersion;
|
||||||
|
bool flexiVerGreen = DiagsAPI.FlexiVersion == UniversalData.ExpFlexiVer;
|
||||||
|
if (!flexiVerGreen)
|
||||||
|
flexiVerText += " Expected = " + UniversalData.ExpFlexiVer;
|
||||||
|
MainForm.Instance.AddLabelToPanel(flexiVerText, !flexiVerGreen);
|
||||||
|
|
||||||
if (DiagsAPI.FlexiVersion == UniversalData.ExpFlexiVer)
|
// Check Flexi Revision
|
||||||
{
|
string flexiRevText = "Flexi Revision = " + DiagsAPI.FlexiRevision;
|
||||||
MainForm.Instance.lblFlexiVer.ForeColor = Color.LightGreen;
|
bool flexiRevGreen = DiagsAPI.FlexiRevision == UniversalData.ExpFlexiRev;
|
||||||
}
|
if (!flexiRevGreen)
|
||||||
else
|
flexiRevText += " Expected = " + UniversalData.ExpFlexiRev;
|
||||||
{
|
MainForm.Instance.AddLabelToPanel(flexiRevText, !flexiRevGreen);
|
||||||
MainForm.Instance.lblFlexiVer.Text += " Expected = " + UniversalData.ExpFlexiVer;
|
|
||||||
MainForm.Instance.lblFlexiVer.ForeColor = Color.Red;
|
|
||||||
}
|
|
||||||
|
|
||||||
MainForm.Instance.lblFlexiRev.Text += DiagsAPI.FlexiRevision; // Check Flexi Revision
|
|
||||||
|
|
||||||
if (DiagsAPI.FlexiRevision == UniversalData.ExpFlexiRev)
|
|
||||||
{
|
|
||||||
MainForm.Instance.lblFlexiRev.ForeColor = Color.LightGreen;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MainForm.Instance.lblFlexiRev.Text += " Expected = " + UniversalData.ExpFlexiRev;
|
|
||||||
MainForm.Instance.lblFlexiRev.ForeColor = Color.Red;
|
|
||||||
}
|
|
||||||
|
|
||||||
MainForm.Instance.lblMac.Text += DiagsAPI.MAC; // Display MAC
|
|
||||||
|
|
||||||
|
// Display MAC
|
||||||
|
string macText = "MAC = " + DiagsAPI.MAC;
|
||||||
|
bool macIsRed = false;
|
||||||
if (RegexCache.MACRegexNVIDIA().IsMatch(DiagsAPI.MAC)) // Checks it is in the right format and is a NVIDIA registered MAC address
|
if (RegexCache.MACRegexNVIDIA().IsMatch(DiagsAPI.MAC)) // Checks it is in the right format and is a NVIDIA registered MAC address
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblMac.ForeColor = Color.LightGreen;
|
// Valid NVIDIA MAC
|
||||||
}
|
}
|
||||||
else if (RegexCache.MACRegex().IsMatch(DiagsAPI.MAC)) // Is a valid MAC, but not NVIDIA
|
else if (RegexCache.MACRegex().IsMatch(DiagsAPI.MAC)) // Is a valid MAC, but not NVIDIA
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblMac.ForeColor = Color.Red;
|
macIsRed = true;
|
||||||
MainForm.Instance.AddToActionsList($"{DiagsAPI.MAC} not recognised as NVIDIA MAC address", Level.ERROR);
|
MainForm.Instance.AddToActionsList($"{DiagsAPI.MAC} not recognised as NVIDIA MAC address", Level.ERROR);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblMac.ForeColor = Color.Red;
|
macIsRed = true;
|
||||||
MainForm.Instance.AddToActionsList($"{DiagsAPI.MAC} not recognised as a MAC address", Level.ERROR);
|
MainForm.Instance.AddToActionsList($"{DiagsAPI.MAC} not recognised as a MAC address", Level.ERROR);
|
||||||
}
|
}
|
||||||
|
MainForm.Instance.AddLabelToPanel(macText, macIsRed);
|
||||||
|
|
||||||
// Check timestamp
|
// Check timestamp
|
||||||
DateTime dateTime = new(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
|
DateTime dateTime = new(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
|
||||||
dateTime = dateTime.AddSeconds(DiagsAPI.timeStamp).ToLocalTime();
|
dateTime = dateTime.AddSeconds(DiagsAPI.timeStamp).ToLocalTime();
|
||||||
|
|
||||||
MainForm.Instance.lbltimestamp.Text += dateTime;
|
|
||||||
long timediff = DateTimeOffset.UtcNow.ToUnixTimeSeconds() - DiagsAPI.timeStamp;
|
long timediff = DateTimeOffset.UtcNow.ToUnixTimeSeconds() - DiagsAPI.timeStamp;
|
||||||
|
|
||||||
|
string timestampText = "Timestamp = " + dateTime;
|
||||||
|
bool timestampIsRed = false;
|
||||||
if (timediff > 10) // Over 10 seconds ago
|
if (timediff > 10) // Over 10 seconds ago
|
||||||
{
|
{
|
||||||
MainForm.Instance.lbltimestamp.Text += $" Time behind by {timediff}s";
|
timestampText += $" Time behind by {timediff}s";
|
||||||
MainForm.Instance.lbltimestamp.ForeColor = Color.Red;
|
timestampIsRed = true;
|
||||||
}
|
}
|
||||||
else if (timediff < 0) // Time is in the future.
|
else if (timediff < 0) // Time is in the future.
|
||||||
{
|
{
|
||||||
MainForm.Instance.lbltimestamp.Text += $" Time is in the future by {Math.Abs(timediff)}s";
|
timestampText += $" Time is in the future by {Math.Abs(timediff)}s";
|
||||||
MainForm.Instance.lbltimestamp.ForeColor = Color.Red;
|
timestampIsRed = true;
|
||||||
}
|
}
|
||||||
else
|
MainForm.Instance.AddLabelToPanel(timestampText, timestampIsRed);
|
||||||
MainForm.Instance.lbltimestamp.ForeColor = Color.LightGreen;
|
|
||||||
|
|
||||||
MainForm.Instance.lblTemp.Text += DiagsAPI.IntTemperature + "°C"; // Diagnostic API request
|
// Check Temperature
|
||||||
|
string tempText = "Temperature = " + DiagsAPI.IntTemperature + "°C";
|
||||||
if (DiagsAPI.IntTemperature > 20 && DiagsAPI.IntTemperature < 70)
|
bool tempIsRed = DiagsAPI.IntTemperature <= 20 || DiagsAPI.IntTemperature >= 70;
|
||||||
MainForm.Instance.lblTemp.ForeColor = Color.LightGreen;
|
MainForm.Instance.AddLabelToPanel(tempText, tempIsRed);
|
||||||
else
|
|
||||||
MainForm.Instance.lblTemp.ForeColor = Color.Red;
|
|
||||||
|
|
||||||
MainForm.Instance.lblZoomLock.Text += DiagsAPI.zoomLock;
|
|
||||||
|
|
||||||
|
// Check Zoom Lock
|
||||||
|
string zoomLockText = "Zoom Lock = " + DiagsAPI.zoomLock;
|
||||||
|
bool zoomLockIsRed = false;
|
||||||
if (DiagsAPI.zoomLock == true)
|
if (DiagsAPI.zoomLock == true)
|
||||||
{
|
{
|
||||||
if (DiagsAPI.IRmodule.zoom == DiagsAPI.OVmodule.zoom) // Checks if zoomlock is doing what is says it should
|
if (DiagsAPI.IRmodule.zoom != DiagsAPI.OVmodule.zoom) // Checks if zoomlock is doing what is says it should
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblZoomLock.ForeColor = Color.LightGreen;
|
zoomLockText += $" Zoomlock on but {DiagsAPI.IRmodule.zoom}≠{DiagsAPI.OVmodule.zoom}";
|
||||||
}
|
zoomLockIsRed = true;
|
||||||
else
|
|
||||||
{
|
|
||||||
MainForm.Instance.lblZoomLock.Text += $" Zoomlock on but {DiagsAPI.IRmodule.zoom}≠{DiagsAPI.OVmodule.zoom}";
|
|
||||||
MainForm.Instance.lblZoomLock.ForeColor = Color.Red;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
MainForm.Instance.lblZoomLock.ForeColor = Color.Red;
|
zoomLockIsRed = true;
|
||||||
|
MainForm.Instance.AddLabelToPanel(zoomLockText, zoomLockIsRed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task CheckDiagsAPIPt2() // Parts only done on final test
|
public static async Task CheckDiagsAPIPt2() // Parts only done on final test
|
||||||
@@ -115,17 +102,19 @@ namespace AiQ_GUI.AiQ_Tests
|
|||||||
|
|
||||||
try // In case serial or model are blank
|
try // In case serial or model are blank
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblModel.Text += DiagsAPI.modelNumber; // Update labels with serial and model
|
string serialText = "Serial Number = " + DiagsAPI.serialNumber;
|
||||||
MainForm.Instance.lblSerial.Text += DiagsAPI.serialNumber;
|
bool serialIsRed = !RegexCache.SerialRegex().IsMatch(DiagsAPI.serialNumber);
|
||||||
|
MainForm.Instance.AddLabelToPanel(serialText, serialIsRed);
|
||||||
|
|
||||||
|
string modelText = "Model Number = " + DiagsAPI.modelNumber;
|
||||||
|
bool modelIsRed = !RegexCache.ModelRegex().IsMatch(DiagsAPI.modelNumber);
|
||||||
|
MainForm.Instance.AddLabelToPanel(modelText, modelIsRed);
|
||||||
|
|
||||||
if (RegexCache.SerialRegex().IsMatch(DiagsAPI.serialNumber) && RegexCache.ModelRegex().IsMatch(DiagsAPI.modelNumber))
|
if (RegexCache.SerialRegex().IsMatch(DiagsAPI.serialNumber) && RegexCache.ModelRegex().IsMatch(DiagsAPI.modelNumber))
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblSerial.ForeColor = MainForm.Instance.lblModel.ForeColor = Color.LightGreen; // Set both to green
|
|
||||||
|
|
||||||
if (DiagsAPI.modelNumber != MainForm.Instance.CamOnTest.Model)
|
if (DiagsAPI.modelNumber != MainForm.Instance.CamOnTest.Model)
|
||||||
{
|
{
|
||||||
MainForm.Instance.AddToActionsList("Model number in camera doesn't match what has been selected", Level.WARNING);
|
MainForm.Instance.AddToActionsList("Model number in camera doesn't match what has been selected", Level.WARNING);
|
||||||
MainForm.Instance.lblModel.ForeColor = Color.Red;
|
|
||||||
}
|
}
|
||||||
else if (!GoogleAPI.CheckWIP(DiagsAPI.serialNumber, CameraAccessInfo.SpreadsheetID)) // Check WIP column in serial number register, if not ticked then RMA
|
else if (!GoogleAPI.CheckWIP(DiagsAPI.serialNumber, CameraAccessInfo.SpreadsheetID)) // Check WIP column in serial number register, if not ticked then RMA
|
||||||
{
|
{
|
||||||
@@ -153,7 +142,10 @@ namespace AiQ_GUI.AiQ_Tests
|
|||||||
MainForm.Instance.AddToActionsList("Camera has not been given a valid serial and model number, suggest you run through pre test again and check serial number register for any issues.", Level.ERROR);
|
MainForm.Instance.AddToActionsList("Camera has not been given a valid serial and model number, suggest you run through pre test again and check serial number register for any issues.", Level.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MainForm.Instance.AddToActionsList($"Error in CheckDiagsAPIPt2 serial/model: {ex.Message}", Level.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
// Check licenses
|
// Check licenses
|
||||||
List<string> licensesOnCam = []; // Temporary list for licenses on camera
|
List<string> licensesOnCam = []; // Temporary list for licenses on camera
|
||||||
@@ -170,73 +162,59 @@ namespace AiQ_GUI.AiQ_Tests
|
|||||||
licensesOnCam.Add("Audit");
|
licensesOnCam.Add("Audit");
|
||||||
if (DiagsAPI.licenses.stream)
|
if (DiagsAPI.licenses.stream)
|
||||||
licensesOnCam.Add("Stream");
|
licensesOnCam.Add("Stream");
|
||||||
if (MainForm.Instance.sshData.tailscale)
|
if (MainForm.Instance.sshData != null && MainForm.Instance.sshData.tailscale)
|
||||||
licensesOnCam.Add("Tailscale");
|
licensesOnCam.Add("Tailscale");
|
||||||
|
|
||||||
if (licensesOnCam.Count == 0) // No licenses found
|
string licText = "Licenses = " + (licensesOnCam.Count == 0 ? "None" : string.Join(", ", licensesOnCam));
|
||||||
MainForm.Instance.lblLic.Text += "None";
|
MainForm.Instance.AddLabelToPanel(licText, false);
|
||||||
else if (licensesOnCam.Count != 0) // Join them comma and space seperated for displaying
|
|
||||||
MainForm.Instance.lblLic.Text += string.Join(", ", licensesOnCam);
|
|
||||||
|
|
||||||
MainForm.Instance.lblLic.ForeColor = Color.LightGreen;
|
|
||||||
|
|
||||||
double CPUround = Math.Round(DiagsAPI.CPUusage); // Check CPU usage isn't near max
|
double CPUround = Math.Round(DiagsAPI.CPUusage); // Check CPU usage isn't near max
|
||||||
MainForm.Instance.LblCPUusage.Text += CPUround + "%";
|
string cpuText = "CPU Usage = " + CPUround + "%";
|
||||||
|
bool cpuIsRed = CPUround <= 50 || CPUround >= 98;
|
||||||
if (CPUround <= 50)
|
MainForm.Instance.AddLabelToPanel(cpuText, cpuIsRed);
|
||||||
{
|
|
||||||
MainForm.Instance.LblCPUusage.Text += " Unexpectedly low CPU usage";
|
|
||||||
MainForm.Instance.LblCPUusage.ForeColor = Color.Red;
|
|
||||||
}
|
|
||||||
else if (CPUround >= 98)
|
|
||||||
{
|
|
||||||
MainForm.Instance.LblCPUusage.Text += " Unexpectedly high CPU usage";
|
|
||||||
MainForm.Instance.LblCPUusage.ForeColor = Color.Red;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MainForm.Instance.LblCPUusage.ForeColor = Color.LightGreen;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check Vaxtor if it doesn't need or have license OR has and wants one then pass
|
// Check Vaxtor if it doesn't need or have license OR has and wants one then pass
|
||||||
|
bool vaxtorIsRed = false;
|
||||||
|
string vaxtorText = "Vaxtor Key ID = " + DiagsAPI.licenses.raptorKeyID;
|
||||||
|
|
||||||
if (CameraAccessInfo.VaxtorLic == false && DiagsAPI.licenses.raptorKeyID == "Not Licensed" || CameraAccessInfo.VaxtorLic == true && DiagsAPI.licenses.raptorKeyID != "Not Licensed")
|
if (CameraAccessInfo.VaxtorLic == false && DiagsAPI.licenses.raptorKeyID == "Not Licensed" || CameraAccessInfo.VaxtorLic == true && DiagsAPI.licenses.raptorKeyID != "Not Licensed")
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblVaxtor.Text += DiagsAPI.licenses.raptorKeyID;
|
// OK - passes condition
|
||||||
MainForm.Instance.lblVaxtor.ForeColor = Color.LightGreen;
|
vaxtorIsRed = false;
|
||||||
}
|
}
|
||||||
else if (await MainForm.Instance.DisplayQuestion("Was this camera licensed manually?"))
|
else if (await MainForm.Instance.DisplayQuestion("Was this camera licensed manually?"))
|
||||||
{
|
{
|
||||||
string ProdcutKeyID = await MainForm.Instance.DisplayInput("What is the Key ID?", false);
|
string ProdcutKeyID = await MainForm.Instance.DisplayInput("What is the Key ID?", false);
|
||||||
|
|
||||||
if (RegexCache.VaxtorRegex().IsMatch(ProdcutKeyID)) // Means they chose the 'I don't know' option or isn't valid Key ID
|
if (!RegexCache.VaxtorRegex().IsMatch(ProdcutKeyID)) // Means they chose valid Key ID
|
||||||
|
{
|
||||||
|
DiagsAPI.licenses.raptorKeyID = MainForm.Instance.TxBxProductKey.Text;
|
||||||
|
vaxtorText = "Vaxtor Key ID = " + DiagsAPI.licenses.raptorKeyID;
|
||||||
|
vaxtorIsRed = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
Access.Stats("Please Get A Valid Vaxtor Product Key Before Continuing", MainForm.Instance.CamOnTest.Model);
|
Access.Stats("Please Get A Valid Vaxtor Product Key Before Continuing", MainForm.Instance.CamOnTest.Model);
|
||||||
await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Please get a valid Vaxtor Product Key before continuing");
|
await MainForm.Instance.TestFailed(MainForm.Instance.BtnStartTest, "Please get a valid Vaxtor Product Key before continuing");
|
||||||
|
vaxtorIsRed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DiagsAPI.licenses.raptorKeyID = MainForm.Instance.TxBxProductKey.Text;
|
|
||||||
MainForm.Instance.lblVaxtor.Text += DiagsAPI.licenses.raptorKeyID;
|
|
||||||
MainForm.Instance.lblVaxtor.ForeColor = Color.LightGreen;
|
|
||||||
}
|
}
|
||||||
else // Should have license but doesn't OR shouldn't have but does + any other unforseen circumstance then fail
|
else // Should have license but doesn't OR shouldn't have but does + any other unforeseen circumstance then fail
|
||||||
{
|
{
|
||||||
MainForm.Instance.lblVaxtor.Text += DiagsAPI.licenses.raptorKeyID;
|
vaxtorIsRed = true;
|
||||||
MainForm.Instance.lblVaxtor.ForeColor = Color.Red;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MainForm.Instance.AddLabelToPanel(vaxtorText, vaxtorIsRed);
|
||||||
|
|
||||||
// Check trim is within 10% both horizontally and vertically, from auto set done earlier in the test
|
// Check trim is within 10% both horizontally and vertically, from auto set done earlier in the test
|
||||||
MainForm.Instance.lblTrim.Text += "H: " + DiagsAPI.trim[0] + " V: " + DiagsAPI.trim[1];
|
string trimText = "Trim = H: " + DiagsAPI.trim[0] + " V: " + DiagsAPI.trim[1];
|
||||||
|
|
||||||
// Offset accounted for in the SetTrim function, so value should be close to 0,0.
|
// Offset accounted for in the SetTrim function, so value should be close to 0,0.
|
||||||
const int HMax = 96; // 5% of 1920 each way = ±96
|
const int HMax = 96; // 5% of 1920 each way = ±96
|
||||||
const int VMax = 54; // 5% of 1080 each way = ±54
|
const int VMax = 54; // 5% of 1080 each way = ±54
|
||||||
|
|
||||||
if (Math.Abs(DiagsAPI.trim[0]) <= HMax && Math.Abs(DiagsAPI.trim[1]) <= VMax)
|
bool trimIsRed = Math.Abs(DiagsAPI.trim[0]) > HMax || Math.Abs(DiagsAPI.trim[1]) > VMax;
|
||||||
MainForm.Instance.lblTrim.ForeColor = Color.LightGreen;
|
MainForm.Instance.AddLabelToPanel(trimText, trimIsRed);
|
||||||
else
|
|
||||||
MainForm.Instance.lblTrim.ForeColor = Color.Red;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
291
AiQ_GUI.Designer.cs
generated
291
AiQ_GUI.Designer.cs
generated
@@ -43,21 +43,6 @@ namespace AiQ_GUI
|
|||||||
BtnClose = new Button();
|
BtnClose = new Button();
|
||||||
PicBxMAV = new PictureBox();
|
PicBxMAV = new PictureBox();
|
||||||
PicBxAiQ = new PictureBox();
|
PicBxAiQ = new PictureBox();
|
||||||
lblFlexiVer = new Label();
|
|
||||||
lblFlexiRev = new Label();
|
|
||||||
lblMac = new Label();
|
|
||||||
lbltimestamp = new Label();
|
|
||||||
lblSerial = new Label();
|
|
||||||
lblModel = new Label();
|
|
||||||
lblLic = new Label();
|
|
||||||
lblVaxtor = new Label();
|
|
||||||
lblTemp = new Label();
|
|
||||||
lblTrim = new Label();
|
|
||||||
lblZoomLock = new Label();
|
|
||||||
LblLEDI = new Label();
|
|
||||||
LblLEDV = new Label();
|
|
||||||
LblOVModule = new Label();
|
|
||||||
LblIRModule = new Label();
|
|
||||||
BtnTest = new Button();
|
BtnTest = new Button();
|
||||||
PicBxIRF2 = new PictureBox();
|
PicBxIRF2 = new PictureBox();
|
||||||
LblIRImageF2 = new Label();
|
LblIRImageF2 = new Label();
|
||||||
@@ -127,10 +112,6 @@ namespace AiQ_GUI
|
|||||||
BtnEzOn = new Button();
|
BtnEzOn = new Button();
|
||||||
BtnSetAll211 = new Button();
|
BtnSetAll211 = new Button();
|
||||||
PnlLbls = new Panel();
|
PnlLbls = new Panel();
|
||||||
LblRouter = new Label();
|
|
||||||
LblDC = new Label();
|
|
||||||
LblFilesystemSize = new Label();
|
|
||||||
LblCPUusage = new Label();
|
|
||||||
BtnOpenWebpage = new Button();
|
BtnOpenWebpage = new Button();
|
||||||
LblIRImageF16 = new Label();
|
LblIRImageF16 = new Label();
|
||||||
ToolTipClipboard = new ToolTip(components);
|
ToolTipClipboard = new ToolTip(components);
|
||||||
@@ -172,7 +153,6 @@ namespace AiQ_GUI
|
|||||||
PnlQuestion.SuspendLayout();
|
PnlQuestion.SuspendLayout();
|
||||||
PnlInputValue.SuspendLayout();
|
PnlInputValue.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)RMANumBox).BeginInit();
|
((System.ComponentModel.ISupportInitialize)RMANumBox).BeginInit();
|
||||||
PnlLbls.SuspendLayout();
|
|
||||||
TabImagesandSettings.SuspendLayout();
|
TabImagesandSettings.SuspendLayout();
|
||||||
TabControls.SuspendLayout();
|
TabControls.SuspendLayout();
|
||||||
groupBox4.SuspendLayout();
|
groupBox4.SuspendLayout();
|
||||||
@@ -202,7 +182,7 @@ namespace AiQ_GUI
|
|||||||
CbBxCameraModel.Name = "CbBxCameraModel";
|
CbBxCameraModel.Name = "CbBxCameraModel";
|
||||||
CbBxCameraModel.Size = new Size(494, 25);
|
CbBxCameraModel.Size = new Size(494, 25);
|
||||||
CbBxCameraModel.TabIndex = 188;
|
CbBxCameraModel.TabIndex = 188;
|
||||||
CbBxCameraModel.SelectedIndexChanged += CbBxCameraModel_SelectedIndexChanged;
|
CbBxCameraModel.SelectedIndexChanged += CbBxCamTypSelectedIndexChanged;
|
||||||
//
|
//
|
||||||
// BtnStartTest
|
// BtnStartTest
|
||||||
//
|
//
|
||||||
@@ -370,201 +350,6 @@ namespace AiQ_GUI
|
|||||||
PicBxAiQ.TabIndex = 173;
|
PicBxAiQ.TabIndex = 173;
|
||||||
PicBxAiQ.TabStop = false;
|
PicBxAiQ.TabStop = false;
|
||||||
//
|
//
|
||||||
// lblFlexiVer
|
|
||||||
//
|
|
||||||
lblFlexiVer.BackColor = Color.Transparent;
|
|
||||||
lblFlexiVer.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold, GraphicsUnit.Point, 0);
|
|
||||||
lblFlexiVer.ForeColor = SystemColors.Control;
|
|
||||||
lblFlexiVer.Location = new Point(5, 46);
|
|
||||||
lblFlexiVer.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblFlexiVer.Name = "lblFlexiVer";
|
|
||||||
lblFlexiVer.Padding = new Padding(2);
|
|
||||||
lblFlexiVer.Size = new Size(481, 23);
|
|
||||||
lblFlexiVer.TabIndex = 174;
|
|
||||||
lblFlexiVer.Text = "Flexi Version = ";
|
|
||||||
//
|
|
||||||
// lblFlexiRev
|
|
||||||
//
|
|
||||||
lblFlexiRev.BackColor = Color.Transparent;
|
|
||||||
lblFlexiRev.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblFlexiRev.ForeColor = SystemColors.Control;
|
|
||||||
lblFlexiRev.Location = new Point(5, 69);
|
|
||||||
lblFlexiRev.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblFlexiRev.Name = "lblFlexiRev";
|
|
||||||
lblFlexiRev.Padding = new Padding(2);
|
|
||||||
lblFlexiRev.Size = new Size(481, 23);
|
|
||||||
lblFlexiRev.TabIndex = 175;
|
|
||||||
lblFlexiRev.Text = "Flexi Revision = ";
|
|
||||||
//
|
|
||||||
// lblMac
|
|
||||||
//
|
|
||||||
lblMac.BackColor = Color.Transparent;
|
|
||||||
lblMac.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblMac.ForeColor = SystemColors.Control;
|
|
||||||
lblMac.Location = new Point(5, 92);
|
|
||||||
lblMac.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblMac.Name = "lblMac";
|
|
||||||
lblMac.Padding = new Padding(2);
|
|
||||||
lblMac.Size = new Size(481, 23);
|
|
||||||
lblMac.TabIndex = 176;
|
|
||||||
lblMac.Text = "MAC Address = ";
|
|
||||||
//
|
|
||||||
// lbltimestamp
|
|
||||||
//
|
|
||||||
lbltimestamp.BackColor = Color.Transparent;
|
|
||||||
lbltimestamp.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lbltimestamp.ForeColor = SystemColors.Control;
|
|
||||||
lbltimestamp.Location = new Point(4, 209);
|
|
||||||
lbltimestamp.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lbltimestamp.Name = "lbltimestamp";
|
|
||||||
lbltimestamp.Padding = new Padding(2);
|
|
||||||
lbltimestamp.Size = new Size(481, 23);
|
|
||||||
lbltimestamp.TabIndex = 177;
|
|
||||||
lbltimestamp.Text = "Camera Time = ";
|
|
||||||
//
|
|
||||||
// lblSerial
|
|
||||||
//
|
|
||||||
lblSerial.BackColor = Color.Transparent;
|
|
||||||
lblSerial.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblSerial.ForeColor = SystemColors.Control;
|
|
||||||
lblSerial.Location = new Point(5, 0);
|
|
||||||
lblSerial.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblSerial.Name = "lblSerial";
|
|
||||||
lblSerial.Padding = new Padding(2);
|
|
||||||
lblSerial.Size = new Size(481, 23);
|
|
||||||
lblSerial.TabIndex = 178;
|
|
||||||
lblSerial.Text = "Serial Number = ";
|
|
||||||
//
|
|
||||||
// lblModel
|
|
||||||
//
|
|
||||||
lblModel.BackColor = Color.Transparent;
|
|
||||||
lblModel.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblModel.ForeColor = SystemColors.Control;
|
|
||||||
lblModel.Location = new Point(5, 23);
|
|
||||||
lblModel.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblModel.Name = "lblModel";
|
|
||||||
lblModel.Padding = new Padding(2);
|
|
||||||
lblModel.Size = new Size(481, 23);
|
|
||||||
lblModel.TabIndex = 179;
|
|
||||||
lblModel.Text = "Model Number = ";
|
|
||||||
//
|
|
||||||
// lblLic
|
|
||||||
//
|
|
||||||
lblLic.BackColor = Color.Transparent;
|
|
||||||
lblLic.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblLic.ForeColor = SystemColors.Control;
|
|
||||||
lblLic.Location = new Point(5, 114);
|
|
||||||
lblLic.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblLic.Name = "lblLic";
|
|
||||||
lblLic.Padding = new Padding(2);
|
|
||||||
lblLic.Size = new Size(481, 23);
|
|
||||||
lblLic.TabIndex = 180;
|
|
||||||
lblLic.Text = "Licenses = ";
|
|
||||||
//
|
|
||||||
// lblVaxtor
|
|
||||||
//
|
|
||||||
lblVaxtor.BackColor = Color.Transparent;
|
|
||||||
lblVaxtor.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblVaxtor.ForeColor = SystemColors.Control;
|
|
||||||
lblVaxtor.Location = new Point(5, 160);
|
|
||||||
lblVaxtor.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblVaxtor.Name = "lblVaxtor";
|
|
||||||
lblVaxtor.Padding = new Padding(2);
|
|
||||||
lblVaxtor.Size = new Size(481, 25);
|
|
||||||
lblVaxtor.TabIndex = 181;
|
|
||||||
lblVaxtor.Text = "Vaxtor Key ID = ";
|
|
||||||
//
|
|
||||||
// lblTemp
|
|
||||||
//
|
|
||||||
lblTemp.BackColor = Color.Transparent;
|
|
||||||
lblTemp.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblTemp.ForeColor = SystemColors.Control;
|
|
||||||
lblTemp.Location = new Point(4, 232);
|
|
||||||
lblTemp.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblTemp.Name = "lblTemp";
|
|
||||||
lblTemp.Padding = new Padding(2);
|
|
||||||
lblTemp.Size = new Size(481, 27);
|
|
||||||
lblTemp.TabIndex = 182;
|
|
||||||
lblTemp.Text = "Internal Temperature = ";
|
|
||||||
//
|
|
||||||
// lblTrim
|
|
||||||
//
|
|
||||||
lblTrim.BackColor = Color.Transparent;
|
|
||||||
lblTrim.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblTrim.ForeColor = SystemColors.Control;
|
|
||||||
lblTrim.Location = new Point(5, 186);
|
|
||||||
lblTrim.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblTrim.Name = "lblTrim";
|
|
||||||
lblTrim.Padding = new Padding(2);
|
|
||||||
lblTrim.Size = new Size(481, 23);
|
|
||||||
lblTrim.TabIndex = 183;
|
|
||||||
lblTrim.Text = "Trim = ";
|
|
||||||
//
|
|
||||||
// lblZoomLock
|
|
||||||
//
|
|
||||||
lblZoomLock.BackColor = Color.Transparent;
|
|
||||||
lblZoomLock.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
lblZoomLock.ForeColor = SystemColors.Control;
|
|
||||||
lblZoomLock.Location = new Point(4, 278);
|
|
||||||
lblZoomLock.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
lblZoomLock.Name = "lblZoomLock";
|
|
||||||
lblZoomLock.Padding = new Padding(2);
|
|
||||||
lblZoomLock.Size = new Size(481, 23);
|
|
||||||
lblZoomLock.TabIndex = 184;
|
|
||||||
lblZoomLock.Text = "ZoomLock = ";
|
|
||||||
//
|
|
||||||
// LblLEDI
|
|
||||||
//
|
|
||||||
LblLEDI.BackColor = Color.Transparent;
|
|
||||||
LblLEDI.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblLEDI.ForeColor = SystemColors.Control;
|
|
||||||
LblLEDI.Location = new Point(4, 324);
|
|
||||||
LblLEDI.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblLEDI.Name = "LblLEDI";
|
|
||||||
LblLEDI.Padding = new Padding(2);
|
|
||||||
LblLEDI.Size = new Size(481, 23);
|
|
||||||
LblLEDI.TabIndex = 186;
|
|
||||||
LblLEDI.Text = "LED Current = ";
|
|
||||||
//
|
|
||||||
// LblLEDV
|
|
||||||
//
|
|
||||||
LblLEDV.BackColor = Color.Transparent;
|
|
||||||
LblLEDV.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblLEDV.ForeColor = SystemColors.Control;
|
|
||||||
LblLEDV.Location = new Point(4, 301);
|
|
||||||
LblLEDV.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblLEDV.Name = "LblLEDV";
|
|
||||||
LblLEDV.Padding = new Padding(2);
|
|
||||||
LblLEDV.Size = new Size(481, 27);
|
|
||||||
LblLEDV.TabIndex = 185;
|
|
||||||
LblLEDV.Text = "LED Voltage = ";
|
|
||||||
//
|
|
||||||
// LblOVModule
|
|
||||||
//
|
|
||||||
LblOVModule.BackColor = Color.Transparent;
|
|
||||||
LblOVModule.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblOVModule.ForeColor = SystemColors.Control;
|
|
||||||
LblOVModule.Location = new Point(4, 370);
|
|
||||||
LblOVModule.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblOVModule.Name = "LblOVModule";
|
|
||||||
LblOVModule.Padding = new Padding(2);
|
|
||||||
LblOVModule.Size = new Size(481, 23);
|
|
||||||
LblOVModule.TabIndex = 189;
|
|
||||||
LblOVModule.Text = "OV Camera Module = ";
|
|
||||||
//
|
|
||||||
// LblIRModule
|
|
||||||
//
|
|
||||||
LblIRModule.BackColor = Color.Transparent;
|
|
||||||
LblIRModule.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblIRModule.ForeColor = SystemColors.Control;
|
|
||||||
LblIRModule.Location = new Point(4, 347);
|
|
||||||
LblIRModule.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblIRModule.Name = "LblIRModule";
|
|
||||||
LblIRModule.Padding = new Padding(2);
|
|
||||||
LblIRModule.Size = new Size(481, 23);
|
|
||||||
LblIRModule.TabIndex = 188;
|
|
||||||
LblIRModule.Text = "IR Camera Module = ";
|
|
||||||
//
|
|
||||||
// BtnTest
|
// BtnTest
|
||||||
//
|
//
|
||||||
BtnTest.BackColor = Color.FromArgb(70, 65, 80);
|
BtnTest.BackColor = Color.FromArgb(70, 65, 80);
|
||||||
@@ -1568,85 +1353,12 @@ namespace AiQ_GUI
|
|||||||
// PnlLbls
|
// PnlLbls
|
||||||
//
|
//
|
||||||
PnlLbls.BackColor = Color.Transparent;
|
PnlLbls.BackColor = Color.Transparent;
|
||||||
PnlLbls.Controls.Add(LblRouter);
|
|
||||||
PnlLbls.Controls.Add(LblDC);
|
|
||||||
PnlLbls.Controls.Add(LblFilesystemSize);
|
|
||||||
PnlLbls.Controls.Add(lblVaxtor);
|
|
||||||
PnlLbls.Controls.Add(LblCPUusage);
|
|
||||||
PnlLbls.Controls.Add(LblLEDV);
|
|
||||||
PnlLbls.Controls.Add(lblFlexiVer);
|
|
||||||
PnlLbls.Controls.Add(lblFlexiRev);
|
|
||||||
PnlLbls.Controls.Add(LblIRModule);
|
|
||||||
PnlLbls.Controls.Add(lblMac);
|
|
||||||
PnlLbls.Controls.Add(LblOVModule);
|
|
||||||
PnlLbls.Controls.Add(lbltimestamp);
|
|
||||||
PnlLbls.Controls.Add(lblSerial);
|
|
||||||
PnlLbls.Controls.Add(lblModel);
|
|
||||||
PnlLbls.Controls.Add(lblZoomLock);
|
|
||||||
PnlLbls.Controls.Add(lblLic);
|
|
||||||
PnlLbls.Controls.Add(lblTrim);
|
|
||||||
PnlLbls.Controls.Add(lblTemp);
|
|
||||||
PnlLbls.Controls.Add(LblLEDI);
|
|
||||||
PnlLbls.Location = new Point(7, 517);
|
PnlLbls.Location = new Point(7, 517);
|
||||||
PnlLbls.Margin = new Padding(4, 3, 4, 3);
|
PnlLbls.Margin = new Padding(4, 3, 4, 3);
|
||||||
PnlLbls.Name = "PnlLbls";
|
PnlLbls.Name = "PnlLbls";
|
||||||
PnlLbls.Size = new Size(503, 452);
|
PnlLbls.Size = new Size(503, 452);
|
||||||
PnlLbls.TabIndex = 198;
|
PnlLbls.TabIndex = 198;
|
||||||
//
|
//
|
||||||
// LblRouter
|
|
||||||
//
|
|
||||||
LblRouter.BackColor = Color.Transparent;
|
|
||||||
LblRouter.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblRouter.ForeColor = SystemColors.Control;
|
|
||||||
LblRouter.Location = new Point(5, 417);
|
|
||||||
LblRouter.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblRouter.Name = "LblRouter";
|
|
||||||
LblRouter.Padding = new Padding(2);
|
|
||||||
LblRouter.Size = new Size(481, 23);
|
|
||||||
LblRouter.TabIndex = 193;
|
|
||||||
LblRouter.Text = "Router = ";
|
|
||||||
LblRouter.Visible = false;
|
|
||||||
//
|
|
||||||
// LblDC
|
|
||||||
//
|
|
||||||
LblDC.BackColor = Color.Transparent;
|
|
||||||
LblDC.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblDC.ForeColor = SystemColors.Control;
|
|
||||||
LblDC.Location = new Point(5, 393);
|
|
||||||
LblDC.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblDC.Name = "LblDC";
|
|
||||||
LblDC.Padding = new Padding(2);
|
|
||||||
LblDC.Size = new Size(481, 23);
|
|
||||||
LblDC.TabIndex = 192;
|
|
||||||
LblDC.Text = "DC Power = ";
|
|
||||||
LblDC.Visible = false;
|
|
||||||
//
|
|
||||||
// LblFilesystemSize
|
|
||||||
//
|
|
||||||
LblFilesystemSize.BackColor = Color.Transparent;
|
|
||||||
LblFilesystemSize.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblFilesystemSize.ForeColor = SystemColors.Control;
|
|
||||||
LblFilesystemSize.Location = new Point(5, 137);
|
|
||||||
LblFilesystemSize.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblFilesystemSize.Name = "LblFilesystemSize";
|
|
||||||
LblFilesystemSize.Padding = new Padding(2);
|
|
||||||
LblFilesystemSize.Size = new Size(481, 25);
|
|
||||||
LblFilesystemSize.TabIndex = 191;
|
|
||||||
LblFilesystemSize.Text = "Filesystem Size = ";
|
|
||||||
//
|
|
||||||
// LblCPUusage
|
|
||||||
//
|
|
||||||
LblCPUusage.BackColor = Color.Transparent;
|
|
||||||
LblCPUusage.Font = new Font("Segoe UI Semibold", 10F, FontStyle.Bold);
|
|
||||||
LblCPUusage.ForeColor = SystemColors.Control;
|
|
||||||
LblCPUusage.Location = new Point(5, 256);
|
|
||||||
LblCPUusage.Margin = new Padding(4, 0, 4, 0);
|
|
||||||
LblCPUusage.Name = "LblCPUusage";
|
|
||||||
LblCPUusage.Padding = new Padding(2);
|
|
||||||
LblCPUusage.Size = new Size(481, 25);
|
|
||||||
LblCPUusage.TabIndex = 190;
|
|
||||||
LblCPUusage.Text = "CPU Usage = ";
|
|
||||||
//
|
|
||||||
// BtnOpenWebpage
|
// BtnOpenWebpage
|
||||||
//
|
//
|
||||||
BtnOpenWebpage.BackColor = Color.FromArgb(70, 65, 80);
|
BtnOpenWebpage.BackColor = Color.FromArgb(70, 65, 80);
|
||||||
@@ -2152,7 +1864,6 @@ namespace AiQ_GUI
|
|||||||
PnlInputValue.ResumeLayout(false);
|
PnlInputValue.ResumeLayout(false);
|
||||||
PnlInputValue.PerformLayout();
|
PnlInputValue.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)RMANumBox).EndInit();
|
((System.ComponentModel.ISupportInitialize)RMANumBox).EndInit();
|
||||||
PnlLbls.ResumeLayout(false);
|
|
||||||
TabImagesandSettings.ResumeLayout(false);
|
TabImagesandSettings.ResumeLayout(false);
|
||||||
TabControls.ResumeLayout(false);
|
TabControls.ResumeLayout(false);
|
||||||
groupBox4.ResumeLayout(false);
|
groupBox4.ResumeLayout(false);
|
||||||
|
|||||||
73
AiQ_GUI.cs
73
AiQ_GUI.cs
@@ -178,11 +178,12 @@ namespace AiQ_GUI
|
|||||||
BtnPreTest.Enabled = BtnStartTest.Enabled = false; // Disable buttons to stop user rnning multiple tests at the same time.
|
BtnPreTest.Enabled = BtnStartTest.Enabled = false; // Disable buttons to stop user rnning multiple tests at the same time.
|
||||||
Logging.LogMessage("Final Test Started");
|
Logging.LogMessage("Final Test Started");
|
||||||
|
|
||||||
if (CbBxCameraModel.Text == "AiQ")
|
if (CbBxCamType.Text == "AiQ")
|
||||||
{
|
{
|
||||||
AiQTests.AiQFinalTest();
|
await AiQTests.AiQFinalTest();
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (CbBxCameraModel.Text == "Mobile")
|
else if (CbBxCamType.Text == "Mobile")
|
||||||
{
|
{
|
||||||
await PreTestPassed();
|
await PreTestPassed();
|
||||||
}
|
}
|
||||||
@@ -197,7 +198,7 @@ namespace AiQ_GUI
|
|||||||
Logging.LogMessage("Pre Test Started");
|
Logging.LogMessage("Pre Test Started");
|
||||||
if (CbBxCamType.Text == "AiQ")
|
if (CbBxCamType.Text == "AiQ")
|
||||||
{
|
{
|
||||||
AiQTests.AiQPreTest();
|
await AiQTests.AiQPreTest();
|
||||||
}
|
}
|
||||||
else if (CbBxCamType.Text == "Mobile")
|
else if (CbBxCamType.Text == "Mobile")
|
||||||
{
|
{
|
||||||
@@ -596,11 +597,6 @@ namespace AiQ_GUI
|
|||||||
TestStartConditions();
|
TestStartConditions();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CbBxCameraModel_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
TestStartConditions();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void btnPsuOn_Click(object sender, EventArgs e)
|
private void btnPsuOn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -675,6 +671,12 @@ namespace AiQ_GUI
|
|||||||
RhTxBxActions.ScrollToCaret();
|
RhTxBxActions.ScrollToCaret();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void CbBxCamTypSelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TestStartConditions();
|
||||||
|
}
|
||||||
|
|
||||||
private async void TestStartConditions()
|
private async void TestStartConditions()
|
||||||
{
|
{
|
||||||
if (Flags.Start)
|
if (Flags.Start)
|
||||||
@@ -1433,11 +1435,62 @@ namespace AiQ_GUI
|
|||||||
Stopwatch stopWatchTest = Stopwatch.StartNew();
|
Stopwatch stopWatchTest = Stopwatch.StartNew();
|
||||||
|
|
||||||
|
|
||||||
await MobilePreTest.CheckFirmwareAsync();
|
//await MobilePreTest.CheckFirmwareAsync();
|
||||||
|
//AddLabelToPanel("Test Complete", false);
|
||||||
|
FakeCamera fakeCamera = new FakeCamera(80); // Create an instance of FakeCamera
|
||||||
|
|
||||||
|
//CamOnTest.IP = CbBxFoundCams.Text;
|
||||||
|
_ = fakeCamera.StartAsync(CAMTYPE.GOOD).ContinueWith(task =>
|
||||||
|
{
|
||||||
|
//Network.Initialize("developer", "Pass123");
|
||||||
|
|
||||||
|
if (task.IsFaulted)
|
||||||
|
{
|
||||||
|
AddToActionsList("Error starting FakeCamera: " + task.Exception?.Message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddToActionsList($"FakeCamera started successfully. IP: {fakeCamera}");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await Task.Delay(3000); // Wait for server to start
|
||||||
|
CbBxFoundCams.Text = "localhost"; // Should force update in creds an network reinit
|
||||||
|
CmBoFoundCams_TextChanged(sender, e);
|
||||||
|
CbBxCameraModel.SelectedIndex = CbBxCameraModel.Items.Count - 1; // Selects AB12CD as model number
|
||||||
|
|
||||||
|
await Task.Delay(3000); // Wait for server to start
|
||||||
|
|
||||||
|
BtnStartTest_Click(sender, e);
|
||||||
|
|
||||||
AddToActionsList("RunTime " + stopWatchTest.Elapsed.ToString(@"hh\:mm\:ss\.ff"), Level.LOG);
|
AddToActionsList("RunTime " + stopWatchTest.Elapsed.ToString(@"hh\:mm\:ss\.ff"), Level.LOG);
|
||||||
}
|
}
|
||||||
|
public static Label MakeNewLabel(string text, bool isRed, int yLoc)
|
||||||
|
{
|
||||||
|
return new Label
|
||||||
|
{
|
||||||
|
Location = new Point(5, yLoc),
|
||||||
|
Height = 20,
|
||||||
|
Width = 220,
|
||||||
|
ForeColor = isRed ? Color.Red : Color.LightGreen,
|
||||||
|
Text = text,
|
||||||
|
Name = "Lbl_" + Guid.NewGuid(),
|
||||||
|
AutoSize = false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddLabelToPanel(string text, bool isRed)
|
||||||
|
{
|
||||||
|
int yLoc = PnlLbls.Controls
|
||||||
|
.OfType<Label>()
|
||||||
|
.Count() * 22; // 20 height + 2px spacing
|
||||||
|
|
||||||
|
Label lbl = MakeNewLabel(text, isRed, yLoc);
|
||||||
|
PnlLbls.Controls.Add(lbl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,12 +43,12 @@ namespace AiQ_GUI
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(errMssg))
|
if (string.IsNullOrWhiteSpace(errMssg))
|
||||||
{
|
{
|
||||||
Lbl.Text += "OK";
|
Lbl.Text = Lbl.Text.TrimEnd('=', ' ') + " = OK"; // SET the text with proper format
|
||||||
Lbl.ForeColor = Color.LightGreen;
|
Lbl.ForeColor = Color.LimeGreen;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Lbl.Text += errMssg;
|
Lbl.Text = Lbl.Text.TrimEnd('=', ' ') + " = " + errMssg; // SET the text with error message
|
||||||
Lbl.ForeColor = Color.Red;
|
Lbl.ForeColor = Color.Red;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
{
|
{
|
||||||
VorI.Sort(); // Sort the list from lowest to highest to prepare for finding the median
|
VorI.Sort(); // Sort the list from lowest to highest to prepare for finding the median
|
||||||
double medianVorI = (VorI[2] + VorI[3]) / 2.0; // Will always be even (6) number of channels therefore average the two middle elements
|
double medianVorI = (VorI[2] + VorI[3]) / 2.0; // Will always be even (6) number of channels therefore average the two middle elements
|
||||||
lblVorI.Text += $"Median: {medianVorI}{VormA} "; // Display median value
|
string medianText = $"Median: {medianVorI}{VormA}";
|
||||||
|
|
||||||
// Define the 20% threshold ranges
|
// Define the 20% threshold ranges
|
||||||
double LowerThreshold = ExpVorI * 0.8;
|
double LowerThreshold = ExpVorI * 0.8;
|
||||||
@@ -18,8 +18,12 @@
|
|||||||
// Check median is within 20% of the expected value
|
// Check median is within 20% of the expected value
|
||||||
if (medianVorI < LowerThreshold || medianVorI > UpperThreshold)
|
if (medianVorI < LowerThreshold || medianVorI > UpperThreshold)
|
||||||
{
|
{
|
||||||
lblVorI.Text += $" Median away from excepted {ExpVorI}{VormA}";
|
medianText += $" (away from expected {ExpVorI}{VormA})";
|
||||||
lblVorI.ForeColor = Color.Red;
|
lblVorI.Invoke(() =>
|
||||||
|
{
|
||||||
|
lblVorI.Text = lblVorI.Text.TrimEnd('=', ' ') + " = " + medianText;
|
||||||
|
lblVorI.ForeColor = Color.Red;
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,12 +39,20 @@
|
|||||||
// If there are no single channels outside the threshold then green, else red
|
// If there are no single channels outside the threshold then green, else red
|
||||||
if (outOfRangeVoltageChannels.Count == 0)
|
if (outOfRangeVoltageChannels.Count == 0)
|
||||||
{
|
{
|
||||||
lblVorI.ForeColor = Color.LightGreen;
|
lblVorI.Invoke(() =>
|
||||||
|
{
|
||||||
|
lblVorI.Text = lblVorI.Text.TrimEnd('=', ' ') + " = " + medianText;
|
||||||
|
lblVorI.ForeColor = Color.LimeGreen;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else if (outOfRangeVoltageChannels.Count != 0)
|
else if (outOfRangeVoltageChannels.Count != 0)
|
||||||
{
|
{
|
||||||
lblVorI.Text += "error on " + string.Join(", ", outOfRangeVoltageChannels); // Join all problem channels together to present on form
|
string errorText = medianText + " (error on " + string.Join(", ", outOfRangeVoltageChannels) + ")";
|
||||||
lblVorI.ForeColor = Color.Red;
|
lblVorI.Invoke(() =>
|
||||||
|
{
|
||||||
|
lblVorI.Text = lblVorI.Text.TrimEnd('=', ' ') + " = " + errorText;
|
||||||
|
lblVorI.ForeColor = Color.Red;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
@@ -40,6 +40,13 @@ namespace AiQ_GUI
|
|||||||
{
|
{
|
||||||
SshClient client = SshConnect(IPAddress);
|
SshClient client = SshConnect(IPAddress);
|
||||||
|
|
||||||
|
// CRITICAL: Check if connection actually succeeded
|
||||||
|
if (client == null)
|
||||||
|
{
|
||||||
|
MainForm.Instance.AddToActionsList($"SSH connection failed for {IPAddress}", Level.ERROR);
|
||||||
|
return Data; // Return empty data
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Data.packages = GetVaxtorPackages(client);
|
Data.packages = GetVaxtorPackages(client);
|
||||||
@@ -78,9 +85,6 @@ namespace AiQ_GUI
|
|||||||
MainForm.Instance.AddToActionsList($"SSH connection failed: {ex.Message}. Check password or network. ", Level.WARNING);
|
MainForm.Instance.AddToActionsList($"SSH connection failed: {ex.Message}. Check password or network. ", Level.WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
string LogMssg = string.Join(" | ", typeof(SSHData).GetProperties().Select(p => $"{p.Name}: {p.GetValue(Data)}"));
|
|
||||||
Logging.LogMessage(LogMssg); // Log all of Data
|
|
||||||
|
|
||||||
return Data;
|
return Data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +238,14 @@ namespace AiQ_GUI
|
|||||||
const double Deviation = 20.0; // ±20GB
|
const double Deviation = 20.0; // ±20GB
|
||||||
|
|
||||||
double currentSize = NormaliseFSSize(sshData.FilesystemSize);
|
double currentSize = NormaliseFSSize(sshData.FilesystemSize);
|
||||||
|
|
||||||
|
// Create label dynamically if not provided
|
||||||
|
if (LblFSSize == null)
|
||||||
|
{
|
||||||
|
MainForm.Instance.AddLabelToPanel($"Filesystem Size = {currentSize}GB", currentSize < (GoodSize - Deviation) || currentSize > (GoodSize + Deviation));
|
||||||
|
return sshData;
|
||||||
|
}
|
||||||
|
|
||||||
LblFSSize.Text = $"Filesystem Size = {currentSize}GB";
|
LblFSSize.Text = $"Filesystem Size = {currentSize}GB";
|
||||||
|
|
||||||
if (Math.Abs(GoodSize - currentSize) < Deviation)
|
if (Math.Abs(GoodSize - currentSize) < Deviation)
|
||||||
@@ -280,7 +292,8 @@ namespace AiQ_GUI
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(rootSize)) return 0;
|
if (string.IsNullOrWhiteSpace(rootSize))
|
||||||
|
return 0;
|
||||||
|
|
||||||
// Extract value & unit
|
// Extract value & unit
|
||||||
System.Text.RegularExpressions.Match match = RegexCache.FileSizeRegex().Match(rootSize.Trim());
|
System.Text.RegularExpressions.Match match = RegexCache.FileSizeRegex().Match(rootSize.Trim());
|
||||||
|
|||||||
Reference in New Issue
Block a user