better naming

This commit is contained in:
2025-05-30 21:17:32 +02:00
parent ebb6a2c2ce
commit c23bb12eaf
5 changed files with 53 additions and 50 deletions

View File

@@ -14,10 +14,10 @@ namespace robospot_camera_finder
{ {
public partial class MainForm : Form public partial class MainForm : Form
{ {
private BindingList<Camera> all_cameras = new(); private BindingList<Camera> allCameras = new();
public static string cam_username = "admin"; public static string CAM_USERNAME = "admin";
public static string cam_password = "RoboSpot10"; public static string CAM_PASSWORD = "RoboSpot10";
// UDP discovery constants // UDP discovery constants
private const int SEND_PORT = 7701; private const int SEND_PORT = 7701;
@@ -34,19 +34,19 @@ namespace robospot_camera_finder
{ {
public Camera(string name, string ip, string location, string serial) public Camera(string name, string ip, string location, string serial)
{ {
camera_name = name; cameraName = name;
camera_ip = ip; cameraIP = ip;
camera_location = location; cameraLocation = location;
camera_serial = serial; cameraSerial = serial;
} }
public string camera_name { get; set; } public string cameraName { get; set; }
public string camera_ip { get; set; } public string cameraIP { get; set; }
public string camera_location { get; set; } public string cameraLocation { get; set; }
public string camera_serial { get; set; } public string cameraSerial { get; set; }
} }
[StructLayout(LayoutKind.Sequential, Pack = 1)] [StructLayout(LayoutKind.Sequential, Pack = 1)]
@@ -98,26 +98,26 @@ namespace robospot_camera_finder
{ {
InitializeComponent(); InitializeComponent();
bool got_proper_ip = false; bool gotProperIP = false;
foreach (var net_interface in NetworkInterface.GetAllNetworkInterfaces()) foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{ {
IPInterfaceProperties prop = net_interface.GetIPProperties(); IPInterfaceProperties interfaceProperties = networkInterface.GetIPProperties();
foreach (var ip in prop.UnicastAddresses) foreach (UnicastIPAddressInformation interfaceUnicastAddr in interfaceProperties.UnicastAddresses)
{ {
if (ip.Address.ToString().StartsWith("10.")) if (interfaceUnicastAddr.Address.ToString().StartsWith("10."))
{ {
if (ip.IPv4Mask.ToString() == "255.0.0.0") if (interfaceUnicastAddr.IPv4Mask.ToString() == "255.0.0.0")
{ {
got_proper_ip = true; gotProperIP = true;
} }
} }
} }
} }
if (!got_proper_ip) if (!gotProperIP)
{ {
DialogResult open_netsettings = MessageBox.Show("No Ethernet interface on the 10.0.0.0/8 subnet found. Cameras might not be detected. Do you want to open network settings ?", "Wrong IP configuration", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); DialogResult openNetworkSettings = MessageBox.Show("No Ethernet interface on the 10.0.0.0/8 subnet found. Cameras might not be detected. Do you want to open network settings ?", "Wrong IP configuration", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
if (open_netsettings == DialogResult.Yes) if (openNetworkSettings == DialogResult.Yes)
{ {
ProcessStartInfo startInfo = new ProcessStartInfo("NCPA.cpl"); ProcessStartInfo startInfo = new ProcessStartInfo("NCPA.cpl");
startInfo.UseShellExecute = true; startInfo.UseShellExecute = true;
@@ -127,15 +127,15 @@ namespace robospot_camera_finder
} }
lbMain.DataSource = all_cameras; lbMain.DataSource = allCameras;
lbMain.DisplayMember = "camera_name"; lbMain.DisplayMember = "cameraName";
lbMain.ValueMember = "camera_ip"; lbMain.ValueMember = "cameraIP";
// Initialize UDP clients // Initialize UDP clients
InitializeUdpClients(); InitializeUdpClients();
// Discover cameras // Discover cameras
discover_cameras(); DiscoverCameras();
} }
private void InitializeUdpClients() private void InitializeUdpClients()
@@ -153,24 +153,24 @@ namespace robospot_camera_finder
} }
} }
private void add_camera(Camera new_camera) private void AddCamera(Camera newCamera)
{ {
if (all_cameras.Count == 0) if (allCameras.Count == 0)
{ {
all_cameras.Add(new_camera); allCameras.Add(newCamera);
} }
else else
{ {
Camera find_cam = all_cameras.FirstOrDefault(cam => cam.camera_serial == new_camera.camera_serial); Camera searchCamera = allCameras.FirstOrDefault(cam => cam.cameraSerial == newCamera.cameraSerial);
if (find_cam != null) if (searchCamera != null)
{ {
int i = all_cameras.IndexOf(find_cam); int i = allCameras.IndexOf(searchCamera);
all_cameras[i] = new_camera; allCameras[i] = newCamera;
} }
else else
{ {
all_cameras.Add(new_camera); allCameras.Add(newCamera);
} }
} }
} }
@@ -180,7 +180,7 @@ namespace robospot_camera_finder
if (lbMain.SelectedItem != null) if (lbMain.SelectedItem != null)
{ {
toolStripStatusLabel.Text = "Loading camera..."; toolStripStatusLabel.Text = "Loading camera...";
Camera camera = all_cameras.FirstOrDefault<Camera>(cam => cam.camera_ip.ToString() == lbMain.SelectedValue.ToString()); Camera camera = allCameras.FirstOrDefault<Camera>(cam => cam.cameraIP.ToString() == lbMain.SelectedValue.ToString());
Form viewer = new StreamViewer(lbMain.GetItemText(lbMain.SelectedItem), lbMain.SelectedValue.ToString(), camera, this); Form viewer = new StreamViewer(lbMain.GetItemText(lbMain.SelectedItem), lbMain.SelectedValue.ToString(), camera, this);
viewer.Show(); viewer.Show();
toolStripStatusLabel.Text = ""; toolStripStatusLabel.Text = "";
@@ -198,18 +198,21 @@ namespace robospot_camera_finder
{ {
json = File.ReadAllText(openFile.FileName); json = File.ReadAllText(openFile.FileName);
List<Camera> cameras_in_file = JsonSerializer.Deserialize<List<Camera>>(json); List<Camera>? camerasInFile = JsonSerializer.Deserialize<List<Camera>>(json);
foreach (Camera new_camera in cameras_in_file) if (camerasInFile is List<Camera>)
{ {
add_camera(new_camera); foreach (Camera camera in camerasInFile)
{
AddCamera(camera);
}
} }
} }
} }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{ {
string json = JsonSerializer.Serialize<BindingList<Camera>>(all_cameras, new JsonSerializerOptions string json = JsonSerializer.Serialize<BindingList<Camera>>(allCameras, new JsonSerializerOptions
{ {
WriteIndented = true WriteIndented = true
}); });
@@ -225,14 +228,14 @@ namespace robospot_camera_finder
private void manualAddToolStripMenuItem_Click(object sender, EventArgs e) private void manualAddToolStripMenuItem_Click(object sender, EventArgs e)
{ {
Manual_IP_Form manualForm = new Manual_IP_Form(); ManualIPForm manualForm = new ManualIPForm();
if (manualForm.ShowDialog(this) == DialogResult.OK) if (manualForm.ShowDialog(this) == DialogResult.OK)
{ {
string ipAddress = manualForm.ipAddress; string ipAddress = manualForm.ipAddress;
Camera camera_to_add = new Camera("Camera " + ipAddress, ipAddress, "", ""); Camera cameraToAdd = new Camera("Camera " + ipAddress, ipAddress, "", ipAddress.Replace(".", ""));
add_camera(camera_to_add); AddCamera(cameraToAdd);
} }
} }
@@ -426,7 +429,7 @@ namespace robospot_camera_finder
// Add camera to list (must be done on UI thread) // Add camera to list (must be done on UI thread)
this.Invoke(new Action(() => this.Invoke(new Action(() =>
{ {
add_camera(discoveredCamera); AddCamera(discoveredCamera);
toolStripStatusLabel.Text = $"Found camera: {cameraName} ({cameraIP})"; toolStripStatusLabel.Text = $"Found camera: {cameraName} ({cameraIP})";
})); }));
} }
@@ -442,7 +445,7 @@ namespace robospot_camera_finder
} }
// Main discovery method // Main discovery method
private async void discover_cameras() private async void DiscoverCameras()
{ {
if (isDiscovering) if (isDiscovering)
{ {
@@ -486,7 +489,7 @@ namespace robospot_camera_finder
finally finally
{ {
isDiscovering = false; isDiscovering = false;
toolStripStatusLabel.Text = $"Discovery complete. Found {all_cameras.Count} cameras."; toolStripStatusLabel.Text = $"Discovery complete. Found {allCameras.Count} cameras.";
} }
} }

View File

@@ -1,6 +1,6 @@
namespace robospot_camera_finder namespace robospot_camera_finder
{ {
partial class Manual_IP_Form partial class ManualIPForm
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.

View File

@@ -10,12 +10,12 @@ using System.Windows.Forms;
namespace robospot_camera_finder namespace robospot_camera_finder
{ {
public partial class Manual_IP_Form : Form public partial class ManualIPForm : Form
{ {
public string ipAddress { get; set; } public string ipAddress { get; set; }
public Manual_IP_Form() public ManualIPForm()
{ {
InitializeComponent(); InitializeComponent();
} }

View File

@@ -41,7 +41,7 @@ namespace robospot_camera_finder
private void updateZoomSlider() private void updateZoomSlider()
{ {
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=query&action=view&Query=Zoom"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=query&action=view&Query=Zoom");
request.Credentials = new NetworkCredential(MainForm.cam_username, MainForm.cam_password); request.Credentials = new NetworkCredential(MainForm.CAM_USERNAME, MainForm.CAM_PASSWORD);
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string text; string text;
using (var sr = new StreamReader(response.GetResponseStream())) { text = sr.ReadToEnd(); } using (var sr = new StreamReader(response.GetResponseStream())) { text = sr.ReadToEnd(); }
@@ -64,7 +64,7 @@ namespace robospot_camera_finder
} }
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=absolute&action=control&ZoomPulse=" + zoom_pulse); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=absolute&action=control&ZoomPulse=" + zoom_pulse);
request.Credentials = new NetworkCredential(MainForm.cam_username, MainForm.cam_password); request.Credentials = new NetworkCredential(MainForm.CAM_USERNAME, MainForm.CAM_PASSWORD);
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
} }
@@ -72,7 +72,7 @@ namespace robospot_camera_finder
private void sendZoomValueManual(string zoom_value) private void sendZoomValueManual(string zoom_value)
{ {
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&NormalizedSpeed=True&action=control&Channel=0&Zoom=" + zoom_value); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + cam_ip + "/stw-cgi/ptzcontrol.cgi?msubmenu=continuous&NormalizedSpeed=True&action=control&Channel=0&Zoom=" + zoom_value);
request.Credentials = new NetworkCredential(MainForm.cam_username, MainForm.cam_password); request.Credentials = new NetworkCredential(MainForm.CAM_USERNAME, MainForm.CAM_PASSWORD);
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
} }