comments & typos

This commit is contained in:
2025-06-01 11:55:24 +02:00
parent 72501532fe
commit 606b92fd32

View File

@@ -15,9 +15,12 @@ namespace robospot_camera_finder
public partial class MainForm : Form public partial class MainForm : Form
{ {
public string VERSION = "1.1.0"; public string VERSION = "1.1.0";
// Version
// Main list containing all cameras
private BindingList<Camera> all_cameras = new(); private BindingList<Camera> all_cameras = new();
// Camera credentials
public static string cam_username = "admin"; public static string cam_username = "admin";
public static string cam_password = "RoboSpot10"; public static string cam_password = "RoboSpot10";
@@ -28,10 +31,12 @@ namespace robospot_camera_finder
private const byte DEF_REQ_SCAN = 1; private const byte DEF_REQ_SCAN = 1;
private const byte RES_REQ_SCAN = 11; private const byte RES_REQ_SCAN = 11;
// UDP clients
private UdpClient sendClient; private UdpClient sendClient;
private UdpClient receiveClient; private UdpClient receiveClient;
private bool isDiscovering = false; private bool isDiscovering = false;
// Camera class
public class Camera public class Camera
{ {
public Camera(string name, string ip, string location, string serial) public Camera(string name, string ip, string location, string serial)
@@ -139,9 +144,10 @@ namespace robospot_camera_finder
InitializeUdpClients(); InitializeUdpClients();
// Discover cameras // Discover cameras
discover_cameras(); DiscoverCameras();
} }
// Inits UDP clients
private void InitializeUdpClients() private void InitializeUdpClients()
{ {
try try
@@ -157,6 +163,7 @@ namespace robospot_camera_finder
} }
} }
// Add cameras to the main list
private void add_camera(Camera new_camera) private void add_camera(Camera new_camera)
{ {
if (all_cameras.Count == 0) if (all_cameras.Count == 0)
@@ -179,67 +186,6 @@ namespace robospot_camera_finder
} }
} }
private void lbMain_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (lbMain.SelectedItem != null)
{
toolStripStatusLabel.Text = "Loading camera...";
Camera camera = all_cameras.FirstOrDefault<Camera>(cam => cam.camera_ip.ToString() == lbMain.SelectedValue.ToString());
Form viewer = new StreamViewer(lbMain.GetItemText(lbMain.SelectedItem), lbMain.SelectedValue.ToString(), camera, this);
viewer.Show();
toolStripStatusLabel.Text = "";
}
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
string json = "";
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "json file (*.json)|*.json";
openFile.RestoreDirectory = true;
if (openFile.ShowDialog() == DialogResult.OK)
{
json = File.ReadAllText(openFile.FileName);
List<Camera> cameras_in_file = JsonSerializer.Deserialize<List<Camera>>(json);
foreach (Camera new_camera in cameras_in_file)
{
add_camera(new_camera);
}
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
string json = JsonSerializer.Serialize<BindingList<Camera>>(all_cameras, new JsonSerializerOptions
{
WriteIndented = true
});
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "json file (*.json)|*.json";
saveFile.RestoreDirectory = true;
if (saveFile.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFile.FileName, json);
}
}
private void manualAddToolStripMenuItem_Click(object sender, EventArgs e)
{
Manual_IP_Form manualForm = new Manual_IP_Form();
if (manualForm.ShowDialog(this) == DialogResult.OK)
{
string ipAddress = manualForm.ipAddress;
Camera camera_to_add = new Camera("Camera " + ipAddress, ipAddress, "", "CAM_FINDER_" + DateTime.Now.Ticks.ToString());
add_camera(camera_to_add);
}
}
// Helper method to convert structure to byte array // Helper method to convert structure to byte array
private byte[] StructureToByteArray(DataPacketIPv4 packet) private byte[] StructureToByteArray(DataPacketIPv4 packet)
{ {
@@ -430,7 +376,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})";
})); }));
} }
@@ -446,7 +392,7 @@ namespace robospot_camera_finder
} }
// Main discovery method // Main discovery method
private async void discover_cameras() private async void DiscoverCameras()
{ {
if (isDiscovering) if (isDiscovering)
{ {
@@ -494,6 +440,67 @@ namespace robospot_camera_finder
} }
} }
private void lbMain_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (lbMain.SelectedItem != null)
{
toolStripStatusLabel.Text = "Loading camera...";
Camera camera = all_cameras.FirstOrDefault<Camera>(cam => cam.camera_ip.ToString() == lbMain.SelectedValue.ToString());
Form viewer = new StreamViewer(lbMain.GetItemText(lbMain.SelectedItem), lbMain.SelectedValue.ToString(), camera, this);
viewer.Show();
toolStripStatusLabel.Text = "";
}
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
string json = "";
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "json file (*.json)|*.json";
openFile.RestoreDirectory = true;
if (openFile.ShowDialog() == DialogResult.OK)
{
json = File.ReadAllText(openFile.FileName);
List<Camera> cameras_in_file = JsonSerializer.Deserialize<List<Camera>>(json);
foreach (Camera new_camera in cameras_in_file)
{
AddCamera(new_camera);
}
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
string json = JsonSerializer.Serialize<BindingList<Camera>>(all_cameras, new JsonSerializerOptions
{
WriteIndented = true
});
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "json file (*.json)|*.json";
saveFile.RestoreDirectory = true;
if (saveFile.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFile.FileName, json);
}
}
private void manualAddToolStripMenuItem_Click(object sender, EventArgs e)
{
Manual_IP_Form manualForm = new Manual_IP_Form();
if (manualForm.ShowDialog(this) == DialogResult.OK)
{
string ipAddress = manualForm.ipAddress;
Camera camera_to_add = new Camera("Camera " + ipAddress, ipAddress, "", "CAM_FINDER_" + DateTime.Now.Ticks.ToString());
add_camera(camera_to_add);
}
}
// Clean up resources when form is closing // Clean up resources when form is closing
protected override void OnFormClosing(FormClosingEventArgs e) protected override void OnFormClosing(FormClosingEventArgs e)
{ {