I have a trouble with ONVIF protocol.
I am making the camera controller on the ONVIF protocol using the C#. and I can find some ONVIF protocol doc. but that doc has no how to configure auxiliary command.
The one of the doc is https://www.onvif.org/wp-content/uploads/2017/07/ONVIF_PTZ_Client_Test_Specification_v1706.pdf.
The next one of the doc is https://www.onvif.org/specs/srv/ptz/ONVIF-PTZ-Service-Spec-v260.pdf.
And I have a sad article has a comment that "As result, from the VMS' GUI it is not possible to activate the Wiper, to run the Washing procedure, or to switch the camera to Night Mode.". https://support.videotec.com/hc/en-gb/articles/204773035-How-to-manage-Special-Functions-using-ONVIF
So, Really can not External program set the auxiliary command???
I'm not sure if this will help, but here's a piece of code using the ptz module of the ONVIF protocol...
https://www.codeproject.com/Tips/1192709/ONVIF-PTZ-Control-in-Csharp
You're supposed to be able to get a list of possible AUX command throught the GetNode function of the ptz ver20 .wsdl
https://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
You should then be able to use the SendAuxiliaryCommand form the same .wsdl
I hope this helps!
Related
I've got Sony A6000 camera with the latest firmware(3.20) and latest Smart Remote Control application (4.30). I've been trying to write application for transferring images, but faced with issues.
I can't switch camera function to Contents Transfer mode.
Repro steps:
Run Smart Remote Control app on my camera;
Sucesfully connect device to camera via WI-FI;
Discover the camera with parameter ST=urn:schemas-sony-com:service:ScalarWebAPI:1;
Receive response Location http://ip:port/scalarwebapi_dd.xml (instead mentioned in doc http://ip:port/dd.xml);
Parsed scalarwebapi_dd.xml contains guide, accessControl and camera services (instead mentioned in doc camera, system and avContent);
Request with getAvailableApiList method return the following:
getVersions, getMethodTypes, getApplicationInfo, getAvailableApiList, getEvent, startRecMode, stopRecMode.
Successfully run request with "startRecMode" method;
"getAvailableApiList" result doesn't contain "getCameraFunction" and
"setCameraFunction"
"getCameraFunction" return the following result:
{"id":1,"error":[1,"Not Available Now"]}
What I'm doing wrong?
Smart Remote 4.30 should give you the avContent services. I had an older version that had the same guide, accessControl, camera but after I updated it had the avContent service.
You can also try using getEvent to troubleshoot the camera status. This could shed some light into why the services aren't available.
im new in c# and i wanna right a code for have a voice call through the GSM modem , actually don't know about how to receive and send voice or stream that ,if any one knows about how to do it please help me with this problem.
i just found this but didn't understand enough to develop my application.
every thing i know is just to send command ,unfortunately i do not even know the AT-Commands.
Port gsmPort=new Port();
gsmPort.Name="COM3";
gsmPort.open();
gsmPort.writeLine("AT\r");
I can suggest to you read these links:
http://www.zeeman.de/wp-content/uploads/2007/09/ubinetics-at-command-set.pdf
2.https://www.sparkfun.com/datasheets/Cellular%20Modules/AT_Commands_Reference_Guide_r0.pdf
https://www.youtube.com/watch?v=_3Vn_YEh3jM
I am trying to change the static send port URI from BizTalk admin console by opening the configuration, I am able to do change the URI.
But if I do the send port URIchange using WMI script in c# or directly update on bts_sendport_transport, it changes the URI in database and the change appears in the send port list also.
Bur when I open the MQ configuration, I can still find the old URI in MQ definition.
Can any one please help me to change the MQ definition in send ports without using admin console?
I think your approach to the problem is wrong they invernted dynamic ports for your problem. since your question not clear enough may be I don't understand your problem clearly.
Here is link for Dynamic Ports and Usage http://www.codeproject.com/Articles/502425/BizTalk-Static-and-Dynamic-FTP-Send-Port-Sample
you must focus on last part
Msg_DynamicSend(FTP.CommandLogFileName) = "D:\\BiztalkLogs\\FTPLog\\DynamicFTPLog.txt";
Msg_DynamicSend(FTP.UserName) = "FTPUSER";
Msg_DynamicSend(FTP.Password) = "Pass1234";
Msg_DynamicSend(FTP.SpoolingFolder) = "/IN/";
Msg_DynamicSend(FTP.RepresentationType) = "ASCII";
DynSendPort(Microsoft.XLANGs.BaseTypes.Address)= "ftp://inhydeshrilata";
DynSendPort(Microsoft.XLANGs.BaseTypes.TransportType) = "FTP"
i'm developing software to display ip camera "Acti", i tried to use axnvUnifiedControl but i cannot find any information about it.
my goal is to connect to the camera using IP, username, and password and display the camera image in windows form.
i'm using c# .net 4.0
This can be done using the following code snippet:
First you should reference the OCX in your toolbox, and drag it to your form. but i tried to use it in design mode, but the VS is hang and force close.
camMedia.MediaSource = CameraIP;
camMedia.MediaUsername = UserName;
camMedia.MediaPassword = Password;
camMedia.HttpPort = HttpPort;//80
camMedia.RegisterPort = RegisterPort;//6000
camMedia.ControlPort = ControlPort;//6001
camMedia.StreamingPort = StreamingPort;//6002
camMedia.Connect(0);
where the camMedia is the OCX object name.
ACTi has quite a wide range of cameras, and they do not share uniform API. You have to look for documentation for your model of interest and check the vendor's sample code and SDKs. The cameras also have some support for well known protocols, such as RTSP and M-JPEG over HTTP so you can leverage certain libraries to visualize the feed, but again you will need documentation, specification and SDKs to find out the essential information.
I've been really interested in adding support for video podcasts to Media Browser.
I would like users to be able to navigate through the available video podcasts and stream them from the internets. That's really easy cause media player etc.. will happily play a file that lives in the cloud.
The problem is that I want cache these files locally so subsequent viewings of the same episode will not involve streaming and instead will play the local file.
So... I was thinking, why not host an HttpListener and as media player asks it for bits of the file, have the HttpListener download and store it locally. Next time a user plays the file we will already have portions of the file locally.
Does anyone know of example code that uses HttpListener for proxying?
EDIT
The idea would be only to proxy simple streamable content like MP3 or Mov.
The bounty will go to an actual implementation.
Here is the API I would like:
// will proxy a uri on the local port, if cacheFile exists it will resume the
// download from cacheFile.
// while the file is downloading it will be name cacheFile.partial, after the
// download is complete the file will be renamed to cacheFile.
// Example usage: ProxyFile("http://media.railscasts.com/videos/176_searchlogic.mov", 8000, #"c:\downloads\railscasts\176_searchlogic.mov")
//
// Directly after this call http://localhost:8000 will be the proxy stream, it will be playable locally.
void ProxyUri(Uri uri, int port, string cacheFile)
Edit 2
HttpListener is looking pretty unpromising I will probably need to do the work at a TCP socket level as HttpListeners seem to require the program runs as admin which is going to be really tricky.
I hadn't done anything with HttpListener before, so I thought this would be a nice little exercise to bring myself up to speed with it - and so it proved. I implemented it as a single ProxyListener class whose constructor takes the parameters of the ProxyUri function you specified. Once you obtain an instance, you start it listening (and potentially downloading) by calling its Start method. When you're done with it, call Cleanup.
There are one or two rough edges but basically it works as per your question. To test it, I built it up as a console application with a Program class which accepts input lines consisting of (uri, port, filename), space-separated, creates the ProxyListener instances and starts them. You can run this console application, type in a suitable line, and the downloader will start (printing out progress to console). Simultaneously you can e.g. fire up IE and fetch the file from the specified port, and you will be able to download it while the downloader is still working. The "uploader" progress will be printed to console, too.
I'm having a bit of trouble pasting it in here, maybe due to size (it's not that big, but bigger than the snippets you normally see here - the ProxyListener class is a tad under 200 lines). Does it sound interesting? If so, I'll post it to a pastebin and update this answer with a link.
Update: Posted as a gist.
Note that you will need Administrator privileges to run the program, since HttpListener requires this.
Update 2: Under certain circumstances, it is not necessary to have admin privileges to run HttpListener. See this link and this one. The idea is, if you can reserve an URL namespace during installation time, then the user does not have to have admin privileges if listening against that namespace.
Streaming was not designed to be saved, and also these protocols are very custom and very complex to implement, streaming sessions do lots of validation and synchronization which will be extremely difficult to imitate. Of course it is not an impossible task, but its fairly big task to do. Only other way is to read and save it as local media file, and use that as a reference. Because you can use windows media encoder to read stream and write stream data as local file, but it still may not allow you to do copy protected data.
Did you consider using HTTP proxy with caching features?
Like:
Apache httpd with mod_proxy and mod_cache
Squid
See also Web Cache # wikipedia
If you want your application to have such web cache component, I suggest you look for Web Cache implementation in .Net, and not code it from scratch.