CAMNET
Camera setup
Cam-actions
Similar to Event-actions, Cam-actions lets you perform actions at a prescribed time. Unlike Event-actions which are performed for a given event, Cam-actions are performed at a give time, and you can have as many Cam-actions as you can think up.
[ camnet camsetup, cam-actions ]
To create a new action, press Add. Set Enable to yes. Days active to seven 1s. The first 1 is for Sunday, the last 1 is for Saturday; use a 0 to not have that action performed that day. Set Time to perform to the time the action is to perform. This can be at start/stop, HH:MM, sunrise/sunset, past-the-hour, and every-x-minutes. A few examples:
      start             (when CAMNET server connects to the camera for streaming)
      14:00             (every day at 2:00pm)
      sunrise + :10     (10 minutes after sunrise)
      at :10            (each hour, at 10 minutes past)
      ea :05            (every five minutes)
      ea 90s            (every 90 seconds)
      stop              (when CAMNET server disconnects from the camera for streaming)
The Time to perform menu has a similar list of samples. To remove an action, set its Time to perform to delete action.
[ camnet camsetup, cam-actions ]
The Action CGI or pathname may be a CGI URI, or may be a text file with CGI URIs. For example, this is an action CGI
      /axis-cgi/lightcontrol.cgi?light=1&level=100
and this is a text file (must end in .txt)
      ../macros/1031_lights.txt
The working directory is the service directory (e.g., c:\camnet\camnetserver). Therefore, the relative path ..\macros is at c:\camnet\macros. A fully-qualified pathname can be used instead of a relative path. The contents of 1031_lights.txt:
      # m1031 macro: lights
      "/axis-cgi/lightcontrol.cgi?light=1&level=10"
      # sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=20"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=30"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=40"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=50"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=60"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=70"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=80"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=90"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level=100"
      #sleepMS 500
      ##"/axis-cgi/lightcontrol.cgi?light=1&level=0"
A comment line may be included by leading the comment with #. A #sleepMS 500 causes CAMNET server to delay processing for 500 milliseconds.

Another file can be used to substitute values in the action file with data from that other file. For example:

      ../macros/1031_lightsSub.txt
The contents of 1031_lightsSub.txt:
      #file: "c:\tmp2\level.txt"
      #file: "c:\tmp2\level2.txt"
      # m1031 macro lights substitute
      "/axis-cgi/lightcontrol.cgi?light={file.1.line.1}&level={file.2.line.2}"
      #sleepMS 500
      "/axis-cgi/lightcontrol.cgi?light=1&level={file.1.line.2}"
where file level.txt contains these two lines:
      1
      33
and file level2.txt contains these two lines:
      1
      100
One use for value substitution would be to read weather report data from a program that writes to a file the temperature, and which can be used in an action script to update the camera's on-screen display text via a simple CGI for that camera.

The text file, as all text files for Camnet, are to be regular ASCII text files, not Unicode.