Compare commits

5 Commits

Author SHA1 Message Date
5ab9f487c6 no pdb in release 2025-06-01 13:26:15 +02:00
40a9b653b2 add publish file / Single Exe 2025-06-01 13:07:24 +02:00
31477b99a0 remove unused package 2025-06-01 12:56:30 +02:00
c731b34b36 typos 2025-06-01 12:38:36 +02:00
eb0d30384d optimize stream viewer usage 2025-06-01 12:34:36 +02:00
5 changed files with 46 additions and 24 deletions

View File

@@ -445,7 +445,7 @@ namespace robospot_camera_finder
{ {
toolStripStatusLabel.Text = "Loading camera..."; toolStripStatusLabel.Text = "Loading camera...";
Camera camera = all_cameras.FirstOrDefault<Camera>(cam => cam.camera_ip.ToString() == lbMain.SelectedValue.ToString()); 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); Form viewer = new StreamViewer(camera, this);
viewer.Show(); viewer.Show();
toolStripStatusLabel.Text = ""; toolStripStatusLabel.Text = "";
} }

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<PublishDir>bin\Release\net9.0-windows\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net9.0-windows</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>

View File

@@ -1,6 +1,4 @@
using LibVLCSharp.Forms.Shared; namespace robospot_camera_finder
namespace robospot_camera_finder
{ {
partial class StreamViewer partial class StreamViewer
{ {

View File

@@ -8,29 +8,30 @@ namespace robospot_camera_finder
public LibVLC _libVLC; public LibVLC _libVLC;
public MediaPlayer _mp; public MediaPlayer _mp;
string cam_ip = ""; MainForm.Camera camera;
int max_zoom_pulse = 9999; const int MAX_ZOOM_PULSE = 9999;
int min_zoom_pulse = 10; const int MIN_ZOOM_PULSE = 10;
bool zoomTestSeqFlag = false; bool zoomTestSeqFlag = false;
public StreamViewer(string name, string ip, MainForm.Camera camera, MainForm mainForm) public StreamViewer(MainForm.Camera cam, MainForm mainForm)
{ {
InitializeComponent(); InitializeComponent();
_libVLC = new LibVLC(); _libVLC = new LibVLC();
_mp = new MediaPlayer(_libVLC); _mp = new MediaPlayer(_libVLC);
cam_ip = ip; camera = cam;
this.Text = name;
if (!cam_ip.StartsWith("10.")) this.Text = camera.camera_name;
if (!cam.camera_ip.StartsWith("10."))
{ {
MessageBox.Show("Camera is not on the 10.0.0.0/8 network, the RoboSpot might not find it.", "Wrong IP", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("Camera is not on the 10.0.0.0/8 network, the RoboSpot might not find it.", "Wrong IP", MessageBoxButtons.OK, MessageBoxIcon.Warning);
} }
string rtsp_link = "rtsp://" + ip + "/profile2/media.smp"; string rtsp_link = "rtsp://" + camera.camera_ip + "/profile2/media.smp";
updateZoomSlider(); updateZoomSlider();
@@ -45,7 +46,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://" + camera.camera_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;
@@ -59,16 +60,16 @@ namespace robospot_camera_finder
private void sendZoomValue(string zoom_pulse) private void sendZoomValue(string zoom_pulse)
{ {
// clamp values to allowed range // clamp values to allowed range
if (int.Parse(zoom_pulse) < min_zoom_pulse) if (int.Parse(zoom_pulse) < MIN_ZOOM_PULSE)
{ {
zoom_pulse = min_zoom_pulse.ToString(); zoom_pulse = MIN_ZOOM_PULSE.ToString();
} }
if (int.Parse(zoom_pulse) > max_zoom_pulse) if (int.Parse(zoom_pulse) > MAX_ZOOM_PULSE)
{ {
zoom_pulse = max_zoom_pulse.ToString(); zoom_pulse = MAX_ZOOM_PULSE.ToString();
} }
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://" + camera.camera_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();
} }
@@ -76,7 +77,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://" + camera.camera_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();
} }
@@ -105,13 +106,13 @@ namespace robospot_camera_finder
private void btnZoomMax_Click(object sender, EventArgs e) private void btnZoomMax_Click(object sender, EventArgs e)
{ {
tbZoom.Value = max_zoom_pulse; tbZoom.Value = MAX_ZOOM_PULSE;
sendZoomValue(tbZoom.Value.ToString()); sendZoomValue(tbZoom.Value.ToString());
} }
private void btnZoomMin_Click(object sender, EventArgs e) private void btnZoomMin_Click(object sender, EventArgs e)
{ {
tbZoom.Value = min_zoom_pulse; tbZoom.Value = MIN_ZOOM_PULSE;
sendZoomValue(tbZoom.Value.ToString()); sendZoomValue(tbZoom.Value.ToString());
} }
@@ -130,12 +131,12 @@ namespace robospot_camera_finder
{ {
if (zoomTestSeqFlag) if (zoomTestSeqFlag)
{ {
tbZoom.Value = min_zoom_pulse; tbZoom.Value = MIN_ZOOM_PULSE;
sendZoomValue(tbZoom.Value.ToString()); sendZoomValue(tbZoom.Value.ToString());
zoomTestSeqFlag = false; zoomTestSeqFlag = false;
} else } else
{ {
tbZoom.Value = max_zoom_pulse; tbZoom.Value = MAX_ZOOM_PULSE;
sendZoomValue(tbZoom.Value.ToString()); sendZoomValue(tbZoom.Value.ToString());
zoomTestSeqFlag = true; zoomTestSeqFlag = true;
} }

View File

@@ -13,13 +13,20 @@
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DebugType>none</DebugType>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Content Include="favicon.ico" /> <Content Include="favicon.ico" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="LibVLCSharp" Version="3.8.2" /> <PackageReference Include="LibVLCSharp" Version="3.8.2" />
<PackageReference Include="LibVLCSharp.Forms" Version="3.8.2" />
<PackageReference Include="LibVLCSharp.WinForms" Version="3.8.2" /> <PackageReference Include="LibVLCSharp.WinForms" Version="3.8.2" />
<PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.20" /> <PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.20" />
</ItemGroup> </ItemGroup>