User Tools

Site Tools


tasksgeneral

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tasksgeneral [2017/12/13 10:18]
admin [Wait For Variable]
tasksgeneral [2018/09/06 08:52] (current)
admin [Cuelist Tasks]
Line 1: Line 1:
 ====== Cuelist Tasks ====== ====== Cuelist Tasks ======
  
-Tasks contain the instructions for the attached devices and the program flow. V-Control knows three types of tasks, Cuelists, [[scriptsgeneral|Scripts]] and [[timestrips|Timestrips]]. Cuelists are very easy to use without real programming. Scripts contain (native compiled) Basic scripts, which makes them very powerful for all kind of applications. Timestrips are a kind of timeline and can be useful in Show Control. ​+Tasks contain the instructions for the attached devices and the program flow. V-Control knows three types of tasks, Cuelists, [[scriptsgeneral|Scripts]] and [[timestrips|Timelines]]. Cuelists are very easy to use without real programming. Scripts contain (native compiled) Basic scripts, which makes them very powerful for all kind of applications. Timestrips are a kind of timeline and can be useful in Show Control. ​
  
 ===== Multitasking and blocked Devices ===== ===== Multitasking and blocked Devices =====
Line 42: Line 42:
 To start this task switch to //Run// mode, select the task and click the //Run Task// button. To start this task switch to //Run// mode, select the task and click the //Run Task// button.
  
 +==== Send commands Synchronous to more then one Device ====
 +This is only possible if all the involved devices use the same driver. If you have a couple of players, all from the same type, then you can select some or all of them in the //Device List//. The Command that is send to the Players is generated by the last selected device. ​
 +
 +{{ :​synccommands.png |}}
 +
 +Notice that the Channel Parameter in the Cuelist now has all the channels of the involved devices. So the command string is generated by V7300_8, but send to all selected devices.
 ==== Edit a Cue ==== ==== Edit a Cue ====
 To edit a Cue, double click on it. If the Cue contains a control command for a device, the “Add Cmd” button changes to “Update”. You can now modify the command and press the “Update” button“ To edit a Cue, double click on it. If the Cue contains a control command for a device, the “Add Cmd” button changes to “Update”. You can now modify the command and press the “Update” button“
Line 80: Line 86:
 Now lets complete the task and stop the player and switch the input of the projector. Now lets complete the task and stop the player and switch the input of the projector.
  
-{{:addtocuelist2.png|}}+{{:addcuetolist2.png|}}
  
  
Line 90: Line 96:
  
 Next, fill the part between Repeat and Endrepeat with instructions. It is possible to move the Repeat or EndRepeat command via Cut (//​Ctrl+X//​) and Paste (//​Ctrl+V//​). Next, fill the part between Repeat and Endrepeat with instructions. It is possible to move the Repeat or EndRepeat command via Cut (//​Ctrl+X//​) and Paste (//​Ctrl+V//​).
 +
 +In the example below we created an endless loop that plays a video from position 0 to position 500. The //Delay// between the //Play// command and the //​WaitForVariable//​ command is necessary for the following reason:
 +The player receives the two commands CueUp and Play. During this sequence, the device driver can not ask for the position, because the player is busy with the two commands. That means that the device variable //​Position//​ still has the last value (500 or more). In that case the WaitForVariable Condition is true and the cue is skipped. One solution to avoid this is to set a small Delay, so the driver has time ti update the correct position.
 +Another solution is to modify the driver. With the CueUp command we can set the Device Variable position to the value of the CueUp command. In this case we don't need the delay.
 +
 +The loop sequence now looks like this:
  
 {{:​repeat.png|}} {{:​repeat.png|}}
 +
  
 === Delay === === Delay ===
  
-It might be necessary to have a Delay between two commands to pause the task for a given amount of time. In the main menu select //Insert -> Delay// or use the context menu. The Delay is specified by the value in milliseconds.+It might be necessary to have a Delay between two commands to pause the task for a given amount of time (see example above). In the main menu select //Insert -> Delay// or use the context menu. The Delay is specified by the value in milliseconds.
  
-{{:delay1.png|}}+{{:delay.png|}}
  
 Delays displayed with a violet background in the list. Delays displayed with a violet background in the list.
  
-{{:​delay.png|}} ​ 
  
 === Call as Function === === Call as Function ===
Line 118: Line 130:
 === Call as Thread === === Call as Thread ===
  
-In contrast to [[call_as_function|CallAsFunction]], a CallAsThread instruction launches the new task parallel to the calling task. The calling task is not paused during the time, the called task is executed. The programmer / operator has to take care that the two parallel running tasks don't use the same resources (devices / channels).+In contrast to CallAsFunction,​ a CallAsThread instruction launches the new task parallel to the calling task. The calling task is not paused during the time, the called task is executed. The programmer / operator has to take care that the two parallel running tasks don't use the same resources (devices / channels).
  
 {{ ::​callasthread2.png |}} {{ ::​callasthread2.png |}}
Line 124: Line 136:
 To create a CallAsThread instruction select //Insert -> CallAsThread//​ in main menu or use the Cuelists context menu (right click //Insert -> CallAsThread//​). That opens the Task Selector presenting all tasks (Cuelists and Scripts). Choose the task that has to be called. To create a CallAsThread instruction select //Insert -> CallAsThread//​ in main menu or use the Cuelists context menu (right click //Insert -> CallAsThread//​). That opens the Task Selector presenting all tasks (Cuelists and Scripts). Choose the task that has to be called.
  
-{{:​taskselector.png|}} 
- 
-The result could look like this: 
-  
-{{:​callasthread.png|}} 
 === Stop Task === === Stop Task ===
  
-It might be necessary to stop a running task before it terminates regularly. This can be done manually via [[icon_toolbar|Icon ​Toolbar]]) ​or as instruction from a running task. Assuming there is an endless loop working with two DVD Player. Now the DVD Players needed for some other action, but it is impossible to use them as long as the endless loop is running, because they are blocked. With the StopTask command it is possible to terminate the endless loop and then use the DVD Players in another task.+It might be necessary to stop a running task before it terminates regularly. This can be done manually via //Stop Task// tool button ​or as instruction from a running task. Assuming there is an endless loop working with two Players. Now the Players needed for some other action, but it is impossible to use them as long as the endless loop is running. With the StopTask command it is possible to terminate the endless loop and then use the Players in another task.
  
 The command is available via main menu //Insert -> Stop Task// or the Cuelists context menu. That opens the Task Selector presenting all tasks (Cuelists and Scripts). Choose the task that has to be stoped. The command is available via main menu //Insert -> Stop Task// or the Cuelists context menu. That opens the Task Selector presenting all tasks (Cuelists and Scripts). Choose the task that has to be stoped.
Line 137: Line 144:
 {{:​taskselector.png|}} ​ {{:​taskselector.png|}} ​
  
-The result could look like this: 
- 
-{{:​stoptask.png|}} ​ 
- 
-If you need to stop all running tasks you can use the StopAllTasks command. This stops all tasks except the one that contains the StopAllTasks command 
    
 === Stop All Tasks === === Stop All Tasks ===
  
 +same as StopTask, but stops all tasks except the one that is calling this command.
 === Show Message === === Show Message ===
  
Line 170: Line 173:
 === Shell Execute as Function === === Shell Execute as Function ===
  
-The ShellExecuteAsFunction command is used to launch shell commands / scripts. It works similar to [[call_as_function|CallAsFunction]], and is available via main menu //Insert -> Shell Execute As Function// or the cuelist context menu.+The ShellExecuteAsFunction command is used to launch shell commands / scripts. It works similar to CallAsFunction,​ and is available via main menu //Insert -> Shell Execute As Function// or the cuelist context menu.
  
 A dialog asks for the shell command and optional parameters: A dialog asks for the shell command and optional parameters:
Line 178: Line 181:
 ShellExecute commands are displayed with red background in the cuelist. ShellExecute commands are displayed with red background in the cuelist.
  
 +In this example notepad.exe is called. If programs or scrips needs to be executed that are not in the operating systems path variable, the the complete path must be given here.
 {{shellexecuteasfunction.png:​}} {{shellexecuteasfunction.png:​}}
    
 === Shell Execute as Thread === === Shell Execute as Thread ===
-ShellExecuteAsThread launches programs / scripts as thread ( see [[shell_execute_as_function|Shell Execute as Function]]). V-Control launch the shell command and returns immediately,​ without waiting for the shell command to finish.+ShellExecuteAsThread launches programs / scripts as thread ( see Shell Execute as Function). V-Control launch the shell command and returns immediately,​ without waiting for the shell command to finish.
tasksgeneral.1513160314.txt.gz · Last modified: 2017/12/13 10:18 by admin