adding discovery menu

This commit is contained in:
Vincent BOUQUET
2024-03-03 14:51:02 +01:00
parent ac1a6cf8d3
commit 9abc348dd3
3 changed files with 141 additions and 5 deletions

View File

@@ -15,6 +15,8 @@ namespace robospot_camera_finder
public static string cam_username = "admin";
public static string cam_password = "RoboSpot10";
private static string browse_scope = "_rtsp._tcp";
public class Camera
{
private IPAddress ip;
@@ -93,8 +95,6 @@ namespace robospot_camera_finder
}
}
browser.StartBrowse("_rtsp._tcp");
lbMain.DataSource = all_cameras;
lbMain.DisplayMember = "camera_name";
lbMain.ValueMember = "camera_ip";
@@ -111,8 +111,34 @@ namespace robospot_camera_finder
browser.ServiceRemoved += (sender, args) =>
{
ServiceRemoved(sender, args);
if (browser.IsBrowsing)
{
ServiceRemoved(sender, args);
}
};
browse(true);
}
private void browse(bool browse_needed)
{
if (browse_needed)
{
if (!browser.IsBrowsing)
{
browser.StartBrowse(browse_scope);
}
}
else
{
if (browser.IsBrowsing)
{
browser.StopBrowse();
}
}
startToolStripMenuItem.Enabled = !browser.IsBrowsing;
stopToolStripMenuItem.Enabled = browser.IsBrowsing;
}
private void ServiceAdded(object sender, ServiceAnnouncementEventArgs args)
@@ -140,8 +166,25 @@ namespace robospot_camera_finder
serial = serial_line.Substring("SerialNumber=".Length).Trim();
}
Camera camera = new Camera("Camera " + cam_addr.ToString() + " - " + location + " - " + serial, cam_addr, location, serial);
all_cameras.Add(camera);
Camera new_camera = new Camera("Camera " + cam_addr.ToString() + " - " + location + " - " + serial, cam_addr, location, serial);
if (all_cameras.Count == 0)
{
all_cameras.Add(new_camera);
} else
{
for (int i = 0; i < all_cameras.Count; i++)
{
if (all_cameras[i].camera_serial == new_camera.camera_serial)
{
all_cameras[i] = new_camera;
}
else
{
all_cameras.Add(new_camera);
}
}
}
}
}
}
@@ -180,5 +223,26 @@ namespace robospot_camera_finder
toolStripStatusLabel.Text = "";
}
}
private void startToolStripMenuItem_Click(object sender, EventArgs e)
{
browse(true);
}
private void stopToolStripMenuItem_Click(object sender, EventArgs e)
{
browse(false);
}
private void forceReloadToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Are you sure you want to clear discovered cameras and restart the discovery process ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
browse(false);
all_cameras.Clear();
browse(true);
}
}
}
}