nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. LeenullUse the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).The font face. Select a font from the drop-down menu. The default is "SansSerif".Select to indicate that the type should be italics. By default, type will not be italicized.Select to indicate that the type should be bold. By default, type will not be bold.The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field. The default is 14.The text of the annotation.nullnullnullnullnullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. LeenullUse the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).The font face. Select a font from the drop-down menu. The default is "SansSerif".Select to indicate that the type should be italics. By default, type will not be italicized.Select to indicate that the type should be bold. By default, type will not be bold.The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field. The default is 14.The text of the annotation.nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)noneyang zhao, edward leenone<p>The FileReader actor reads a local file or URL and outputs the contents of the file as a single string.</p>
<p>The actor is similar to the SimpleFileReader, except that the FileReader has an additional trigger port and can read a URL via either an input port or parameter.</p>
<p>Kepler contains several actors used to read and output files in different ways. To output each line of the file as a separate string, use the LineReader actor. To output a specified section of the file, use the SegmentFileReader.</p>An output port that broadcasts the contents of the file as a single string.An output port that indicates whether or not the end of the file has been reached. If the end of the file has been reached, the port will produce a true value. Otherwise, the value is false.A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.An optional input port that accepts the name or URL of a file to be read. When the port is connected, the actor reads the file sent by the previous workflow step. The file name or URL can also be specified using the fileOrURL parameter.The end of line character(s). In general, this setting can be left at its default setting. The file name or URL of the file to be read. See FileParameter for more information about specifying file names.nullYuhong Xiong, Edward A. Leenull<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>
<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re-opened. </p>
<p>If the input is a string token, then the actor strips the surrounding quotation marks before displaying the value.</p>
<p>Select the suppressBlankLines parameter to specify that the actor not add blank lines to the display. By default, the actor will add blank lines.</p>
<p>Note: this actor can consume large amounts of memory. It is not advisable to use it to display large output streams.</p>A multiport that accepts tokens of any type.Specify whether the actor should display blank lines (the default) or suppress them.The vertical size of the display, in rows. The value is an integer that defaults to 10.The horizontal size of the display, in columns. The value is an integer that defaults to 40.The title of the text display window. If specified, the value will appear in the title bar of the text display window.An actor to perform alignment using NCBI blastall.Daniel Crawl, Jianwu Wang, Sitao Wu$Id: ExecutionChoice.java 30549 2012-08-27 21:51:24Z crawl $An actor to perform alignment using NCBI blastall.The output file that contains the alignment results.The execution choice to run.The input file for query sequences.The input file for reference sequences.The execution choice to run.The command line program to execute.The format option for output, namely alignment view options.The output file that contains the alignment results.Additional command line options to run blastallExpectation value.The name of blast program to be executed.The input file for reference sequences.The input file for query sequences.If true, verify the last modification timestamp for each output file has increased after execution. If the timestamp has not increased, throw an error.nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullnullnullnullnullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullYuhong Xiongnull<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>
<p>To create a composite actor, drag and drop the Composite actor onto the Workflow canvas. Right-click the actor and select Open Actor from the drop-down menu. A new Kepler application window will open for designing the composite.</p>nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullGang Zhounull
<p> The dynamic dataflow (DDF) domain is a superset of the synchronous
dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
an actor consumes and produces a fixed number of tokens per firing.
This static information makes possible compile-time scheduling. In the
DDF domain, there are few constraints on the production and consumption
behavior of actors, and the schedulers make no attempt to construct a
compile-time schedule. Instead, each actor has a set of firing rules
(patterns) and can be fired if one of them is satisfied, i.e., one
particular firing pattern forms a prefix of sequences of unconsumed
tokens at input ports. The canonical actors in the DDF domain include
Select and Switch, which consume or produce tokens on different channels
based on the token received from the control port. (In practice, use
DDFSelect and DDFBooleanSelect in the DDF-specific library instead of
Select and BooleanSelect in the regular FlowControl library; however,
Switch and BooleanSwitch in the regular FlowControl library can be
used in DDF domain.)</p>
<p> The dynamic scheduler implemented in this director fires all enabled
and non-deferrable actors once in a basic iteration. A deferrable
actor is one that will not help one of the downstream actors become
enabled because that downstream actor either already has enough tokens on
the channel connecting those two actors or is waiting for tokens on
another channel. If no actor fires so far, which means there is no
enabled and non-deferrable actor, then among all enabled and deferrable
actors, this director fires those which have the smallest maximum number
of tokens on their output channels which satisfy the demand of destination
actors. If still no actor fires, then there is no enabled actor. A user
can treat several such basic iterations as a single iteration by adding
a parameter with name <i>requiredFiringsPerIteration</i> to an actor
(which is often a sink actor or an actor directly connected to output port
of the composite actor) and specifying the number of times this actor must
be fired in a single iteration. If the value of the parameter
<i>runUntilDeadlockInOneIteration</i> is a BooleanToken with value true,
one single iteration consists of repeating the basic iteration until
deadlock is reached (thus overriding the previous definition of one
iteration), which is the status of the model where all active
actors under the control of this director are unable to fire because
their firing rules are not satisfied. However, they may be able to fire
again during next iteration when tokens are transferred in from an outside
domain. Note <i>runUntilDeadlockInOneIteration</i> can be set to true
only when this director is not on the top level.</p>
<p> The algorithm implementing one basic iteration goes like this:
<pre>
E = set of enabled actors
D = set of deferrable enabled actors
</pre>
One basic(default) iteration consists of:
<pre>
if (E\D != empty set) {
fire (E\D)
} else if (D != empty set) {
fire minimax(D)
} else {
declare deadlock
}
</pre>
The function "minimax(D)" returns a subset of D with the smallest
maximum number of tokens on their output channels which satisfy the
demand of destination actors.</p>
<p> Note that any SDF model can be run with a DDF Director. However, the
notion of iteration is different. One could try to imitate the SDF
iteration in the DDF domain by controlling the number of firings in one
iteration for some actors, such as requiring a plotter to plot a fixed
number of points in each iteration.</p>
<p> In the DDF domain, the firing rule of any actor is specified by the token
consumption rates of its input ports. A general DDF actor could change
the consumption rates of its input ports after each firing of this actor.
For multiports, an array token could be used to specify different rates
for different channels connected to the same multiport. Note that in SDF,
all channels connected to the same multiport have the same rate.</p>
<p> Based on DDFSimpleSched in Ptolemy Classic, by Edward Lee.
See E. A. Lee et al., "The Almagest," documentation for Ptolemy Classic,
Vol. 1, Chapter 7, 1997.</p>
Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullWibke Sudholtnull
<p>The ArrayAccumulator actor reads an array and outputs a string containing all of the array elements. The characters separating the entries in the output string can be specified with the elementSeparator parameter.</p>
<p>The ArrayAccumulator actor is similar to the ArrayToSequence actor, except that the ArrayAccumulator outputs values as a string, while the ArrayToSequence actor outputs elements as a sequence via a single output port. Note: Use the ArrayToElements actor to output individual array values on multiple channels of the output port.</p>An output port that broadcasts a string consisting of all of the array elements.An input port that accepts an array of elements of any type.The character used to separate the elements in the output string. By default, the value is "".nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullEdward Lee, Steve Neuendorffer, Jerome Blancnull
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter.
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the value deterministically (independent of the schedule of execution of the actors).
If delayed is false, then the change to the value of the variable is performed immediately. This allows more frequent reconfiguration, and can mimic the operation of PGM's graph variables.
Note that the variable name is observed during preinitialize(). If it is changed after that, the change will not take effect until the next time the model is executed. Moreover, the type of the variable is constrained in preinitialize() to be at least that of the input port for this actor.
The variable can be either any attribute that implements the Settable interface. If it is in addition an instance of Variable, then the input token is used directly to set the value, and the type of the variable is constrained to be the same as the type of the input. Otherwise, then input token is converted to a string and the setExpression() method on the variable is used to set the value.
The variable can occur anywhere in the hierarchy above the current level. If the variable is not found in the container, then the container of the container is checked until we reach the top level.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullnullnullnullnullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullnullnullnullnullDaniel Crawlnull
A director than runs models in Stratosphere.Stratosphere configuration directory.The stop time of the model. By default, this is blank, which means that no stop time is specified. If a stop time is specified, it must be a double, and when local time meets or exceeds the stop time, then {@link #postfire()} returns false.The local time of model when this director is initialized. By default, this is blank, which indicates that the start time is the current time of the enclosing director when initialize() is invoked, or 0.0 if there is no enclosing director. This can be set to a double value to explicitly specify a start time. Note that if <i>startTime</i> is given a value that is different from the start time of the enclosing director, then local time may be ahead of or behind environment time during execution. Also note that some directors do not advance time (including PN and Rendezvous, for example), in which case, local time remains at the start time value throughout the execution.If true, sub-workflows are written to files in a randomly-named directory.The default degree of parallelism for DDP Pattern actors. This value is used if the actor's degreeOfParallelism less than or equal to zero.nullDaniel Crawlnull
An actor for file data input.Data output.Data input file name.The name of the data format or a fully-qualified class name to parse the data.Data input file name.The number of parallel instances to execute.nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. If connected, a token must be available on this port before actor will execute.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullDaniel Crawlnull
An actor for file data output.The data to be written.After data has been written, this port outputs the path.The path to write the data.The name of the data format or a fully-qualified class name to parse the data.The path to write the data.The number of parallel instances to execute.nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullnullnullnullnullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullYuhong Xiongnull<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>
<p>To create a composite actor, drag and drop the Composite actor onto the Workflow canvas. Right-click the actor and select Open Actor from the drop-down menu. A new Kepler application window will open for designing the composite.</p>nullGang Zhounull
<p> The dynamic dataflow (DDF) domain is a superset of the synchronous
dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
an actor consumes and produces a fixed number of tokens per firing.
This static information makes possible compile-time scheduling. In the
DDF domain, there are few constraints on the production and consumption
behavior of actors, and the schedulers make no attempt to construct a
compile-time schedule. Instead, each actor has a set of firing rules
(patterns) and can be fired if one of them is satisfied, i.e., one
particular firing pattern forms a prefix of sequences of unconsumed
tokens at input ports. The canonical actors in the DDF domain include
Select and Switch, which consume or produce tokens on different channels
based on the token received from the control port. (In practice, use
DDFSelect and DDFBooleanSelect in the DDF-specific library instead of
Select and BooleanSelect in the regular FlowControl library; however,
Switch and BooleanSwitch in the regular FlowControl library can be
used in DDF domain.)</p>
<p> The dynamic scheduler implemented in this director fires all enabled
and non-deferrable actors once in a basic iteration. A deferrable
actor is one that will not help one of the downstream actors become
enabled because that downstream actor either already has enough tokens on
the channel connecting those two actors or is waiting for tokens on
another channel. If no actor fires so far, which means there is no
enabled and non-deferrable actor, then among all enabled and deferrable
actors, this director fires those which have the smallest maximum number
of tokens on their output channels which satisfy the demand of destination
actors. If still no actor fires, then there is no enabled actor. A user
can treat several such basic iterations as a single iteration by adding
a parameter with name <i>requiredFiringsPerIteration</i> to an actor
(which is often a sink actor or an actor directly connected to output port
of the composite actor) and specifying the number of times this actor must
be fired in a single iteration. If the value of the parameter
<i>runUntilDeadlockInOneIteration</i> is a BooleanToken with value true,
one single iteration consists of repeating the basic iteration until
deadlock is reached (thus overriding the previous definition of one
iteration), which is the status of the model where all active
actors under the control of this director are unable to fire because
their firing rules are not satisfied. However, they may be able to fire
again during next iteration when tokens are transferred in from an outside
domain. Note <i>runUntilDeadlockInOneIteration</i> can be set to true
only when this director is not on the top level.</p>
<p> The algorithm implementing one basic iteration goes like this:
<pre>
E = set of enabled actors
D = set of deferrable enabled actors
</pre>
One basic(default) iteration consists of:
<pre>
if (E\D != empty set) {
fire (E\D)
} else if (D != empty set) {
fire minimax(D)
} else {
declare deadlock
}
</pre>
The function "minimax(D)" returns a subset of D with the smallest
maximum number of tokens on their output channels which satisfy the
demand of destination actors.</p>
<p> Note that any SDF model can be run with a DDF Director. However, the
notion of iteration is different. One could try to imitate the SDF
iteration in the DDF domain by controlling the number of firings in one
iteration for some actors, such as requiring a plotter to plot a fixed
number of points in each iteration.</p>
<p> In the DDF domain, the firing rule of any actor is specified by the token
consumption rates of its input ports. A general DDF actor could change
the consumption rates of its input ports after each firing of this actor.
For multiports, an array token could be used to specify different rates
for different channels connected to the same multiport. Note that in SDF,
all channels connected to the same multiport have the same rate.</p>
<p> Based on DDFSimpleSched in Ptolemy Classic, by Edward Lee.
See E. A. Lee et al., "The Almagest," documentation for Ptolemy Classic,
Vol. 1, Chapter 7, 1997.</p>
A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullJianwu Wangnull<p>The RandomDirectoryMaker actor creates a new random local directory in specified parent directory and outputs its path.</p>
<p>The name of the new directory is specified as a random non-negative interger.</p>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.An output port that broadcasts the new directory path.The name and path of the parent directory. See FileParameter for more information about specifying paths.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullGang Zhounull
<p> The dynamic dataflow (DDF) domain is a superset of the synchronous
dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
an actor consumes and produces a fixed number of tokens per firing.
This static information makes possible compile-time scheduling. In the
DDF domain, there are few constraints on the production and consumption
behavior of actors, and the schedulers make no attempt to construct a
compile-time schedule. Instead, each actor has a set of firing rules
(patterns) and can be fired if one of them is satisfied, i.e., one
particular firing pattern forms a prefix of sequences of unconsumed
tokens at input ports. The canonical actors in the DDF domain include
Select and Switch, which consume or produce tokens on different channels
based on the token received from the control port. (In practice, use
DDFSelect and DDFBooleanSelect in the DDF-specific library instead of
Select and BooleanSelect in the regular FlowControl library; however,
Switch and BooleanSwitch in the regular FlowControl library can be
used in DDF domain.)</p>
<p> The dynamic scheduler implemented in this director fires all enabled
and non-deferrable actors once in a basic iteration. A deferrable
actor is one that will not help one of the downstream actors become
enabled because that downstream actor either already has enough tokens on
the channel connecting those two actors or is waiting for tokens on
another channel. If no actor fires so far, which means there is no
enabled and non-deferrable actor, then among all enabled and deferrable
actors, this director fires those which have the smallest maximum number
of tokens on their output channels which satisfy the demand of destination
actors. If still no actor fires, then there is no enabled actor. A user
can treat several such basic iterations as a single iteration by adding
a parameter with name <i>requiredFiringsPerIteration</i> to an actor
(which is often a sink actor or an actor directly connected to output port
of the composite actor) and specifying the number of times this actor must
be fired in a single iteration. If the value of the parameter
<i>runUntilDeadlockInOneIteration</i> is a BooleanToken with value true,
one single iteration consists of repeating the basic iteration until
deadlock is reached (thus overriding the previous definition of one
iteration), which is the status of the model where all active
actors under the control of this director are unable to fire because
their firing rules are not satisfied. However, they may be able to fire
again during next iteration when tokens are transferred in from an outside
domain. Note <i>runUntilDeadlockInOneIteration</i> can be set to true
only when this director is not on the top level.</p>
<p> The algorithm implementing one basic iteration goes like this:
<pre>
E = set of enabled actors
D = set of deferrable enabled actors
</pre>
One basic(default) iteration consists of:
<pre>
if (E\D != empty set) {
fire (E\D)
} else if (D != empty set) {
fire minimax(D)
} else {
declare deadlock
}
</pre>
The function "minimax(D)" returns a subset of D with the smallest
maximum number of tokens on their output channels which satisfy the
demand of destination actors.</p>
<p> Note that any SDF model can be run with a DDF Director. However, the
notion of iteration is different. One could try to imitate the SDF
iteration in the DDF domain by controlling the number of firings in one
iteration for some actors, such as requiring a plotter to plot a fixed
number of points in each iteration.</p>
<p> In the DDF domain, the firing rule of any actor is specified by the token
consumption rates of its input ports. A general DDF actor could change
the consumption rates of its input ports after each firing of this actor.
For multiports, an array token could be used to specify different rates
for different channels connected to the same multiport. Note that in SDF,
all channels connected to the same multiport have the same rate.</p>
<p> Based on DDFSimpleSched in Ptolemy Classic, by Edward Lee.
See E. A. Lee et al., "The Almagest," documentation for Ptolemy Classic,
Vol. 1, Chapter 7, 1997.</p>
A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullWibke Sudholtnull
<p>The ArrayAccumulator actor reads an array and outputs a string containing all of the array elements. The characters separating the entries in the output string can be specified with the elementSeparator parameter.</p>
<p>The ArrayAccumulator actor is similar to the ArrayToSequence actor, except that the ArrayAccumulator outputs values as a string, while the ArrayToSequence actor outputs elements as a sequence via a single output port. Note: Use the ArrayToElements actor to output individual array values on multiple channels of the output port.</p>An output port that broadcasts a string consisting of all of the array elements.An input port that accepts an array of elements of any type.The character used to separate the elements in the output string. By default, the value is "".nullEdward Lee, Steve Neuendorffer, Jerome Blancnull
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter.
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the value deterministically (independent of the schedule of execution of the actors).
If delayed is false, then the change to the value of the variable is performed immediately. This allows more frequent reconfiguration, and can mimic the operation of PGM's graph variables.
Note that the variable name is observed during preinitialize(). If it is changed after that, the change will not take effect until the next time the model is executed. Moreover, the type of the variable is constrained in preinitialize() to be at least that of the input port for this actor.
The variable can be either any attribute that implements the Settable interface. If it is in addition an instance of Variable, then the input token is used directly to set the value, and the type of the variable is constrained to be the same as the type of the input. Otherwise, then input token is converted to a string and the setExpression() method on the variable is used to set the value.
The variable can occur anywhere in the hierarchy above the current level. If the variable is not found in the container, then the container of the container is checked until we reach the top level.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullNorbert Podhorszkinull
<p>The SSHSession actor creates an SSH session to a remote host. If requested, the session will not be opened until the first actor that uses SSH is invoked by the workflow (e.g., an SSHExecuteCmd actor). This actor is used to provide a private-key for public-key authentication, and to connect to a remote machine at a certain point in the workflow (e.g., at the very beginning so that a password is specified then rather than during execution).</p>
<p>The actor outputs a connection reference (the name of the host target), which is retrieved by other actors so that they can use the connection. If the target is an empty string or "local", the actor does nothing, and all commands (in other SSH actors) will be executed locally using Java Runtime.</p>
<p>If the parameter <i>postpone</i> is true, the connection is not established until the first remote operation is executed. However, one of the main purposes of this actor is to request passwords and make a connection at the beginning of the workflow. The default is false. </p>
<p>If the parameter <i>closeAtEnd</i> is true, the session will be closed at the end of the workflow. If false, the session will remain open. The default is false, as the underlying SSH package has only one session (within Kepler) to a given user@host:port. If two workflows are executing on the same host, and the SSH session is closed at the end of one of the workflows, the other will likely experience a broken operation.</p>
<p>The <i>failed</i> output port emits a BooleanToken indicating whether the connection failed: 'true' if the <i>postpone</i> flag is false and the connection failed, otherwise, 'false'. The port is used to throw an exception or stop a workflow that cannot run without a connection, or to successively try out other hosts.</p>
<p>Port forwarding is supported. The 'portforwarding' parameter should have the format "-L port:host:hostport -R port:host:hostport ...". Many local and/or remote forwarding specification can be given.</p>
A BooleanToken indicating whether the connection failed: 'true' if the <i>postpone</i> flag is false and the connection failed, otherwise, 'false'. The file path for the SSH identity file. Specify an identity path to connect to an SSH host without having to reenter the password. The machine to be used at job submission. It should be null, "" or "local" for the local machine or [user@]host to denote a remote machine accessible with SSH. If user is not provided, the local username will be used. If port is not provided, the default port 22 will be applied. This parameter is read once at initialize. Specification for local and/or port forwardings. Format: "-L port:host:hostport -R port:host:hostport ...". Many local and/or remote forwarding specification can be given. A string that identifies the created session. The value is identical to the value of the specified target. If the target is specified as a parameter, you do not need to connect this port to pass the connection reference to downstream actors. Specify whether the connection to the host should be closed when the workflow terminates. If you run more than one workflow simultaneously on the same remote host, this flag should be false to avoid closing the session in one workflow while the others are still using it.
The file path for the SSH identity file. Specify an identity path to connect to an SSH host without having to reenter the password. Specify whether to postpone the connection until the first remote operation is executed. The default is false, as one of the main purposes of this actor is to request passwords and make a connection at the beginning of the workflow. The machine to be used at job submission. It should be null, "" or "local" for the local machine or [user@]host to denote a remote machine accessible with SSH. If user is not provided, the local username will be used. If port is not provided, the default port 22 will be applied. This parameter is read once at initialize. Specification for local and/or port forwardings. Format: "-L port:host:hostport -R port:host:hostport ...". Many local and/or remote forwarding specification can be given. nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullNorbert Podhorszkinull
<p>The SSHFileCopier actor connects to a remote host using SSH protocol and copies a file or directory to or from the host. Either the source or the target file must be local. This actor cannot copy remote files to remote places. For such operations, use the SSHExecuteCmd actor. The actor performs the copy operation and outputs the operation results (success or failure, as well as internal error messages, if any).</p>
The file references should be in the format: [[user@]host:]path. For example,
<ul>
<li><i>foo.txt</i>
The file foo.txt in the current directory on the local machine</li>
<li><i>playdir/foo.txt</i>
The relative path to the current dir on the local machine</li>
<li><i>/home/littleboy/playdir/foo.txt</i>
The absolute path to foo.txt on the local machine</li>
<li><i>local:playdir/foo.txt</i>
The relative path to $HOME on the local machine</li>
<li><i>localhost:playdir/foo.txt</i>
The relative path to $HOME on the 'localhost' machine </li>
<li><i>john@farmachine:playdir/foo.txt</i>
The relative path to $HOME on the 'farmachine' machine of user 'john'</li>
</ul>
<p>If the target is an existing file, it will be overwritten. If the target is an existing directory, a subdirectory within the existing directory will be created with the name of the source.</p>
<p>If copying a directory, set the parameter 'recursive' to true to copy the entire directory.</p>
A Boolean token indicating if the copy operation was successful: true if ALL matched files and directories are copied; false if not. Note: if copying directories and 'recursive' is not set, the value will be false (files will be copied but directories will not be). The actor's execution errors, if any; otherwise an empty string. The location of the files and directories to copy. The machine to be used at job submission. It should be null, "" or "local" for the local machine or [user@]host to denote a remote machine accessible with SSH. If user is not provided, the local username will be used. If port is not provided, the default port 22 will be applied. This parameter is read once at initialize. Specify whether directories can be copied recursively. The location of the files and directories to copy. The machine to be used at job submission. It should be null, "" or "local" for the local machine or [user@]host to denote a remote machine accessible with SSH. If user is not provided, the local username will be used. If port is not provided, the default port 22 will be applied. This parameter is read once at initialize. nullEdward Leenull<p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>
<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p>
<p>Specified string values can include references to parameters within scope (i.e., parameters defined at the same level of the hierarchy or higher). </p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. </p>
An output port that broadcasts a string constant specified by the value parameter. A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullYuhong Xiong, Edward A. Leenull<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>
<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re-opened. </p>
<p>If the input is a string token, then the actor strips the surrounding quotation marks before displaying the value.</p>
<p>Select the suppressBlankLines parameter to specify that the actor not add blank lines to the display. By default, the actor will add blank lines.</p>
<p>Note: this actor can consume large amounts of memory. It is not advisable to use it to display large output streams.</p>A multiport that accepts tokens of any type.Specify whether the actor should display blank lines (the default) or suppress them.The vertical size of the display, in rows. The value is an integer that defaults to 10.The horizontal size of the display, in columns. The value is an integer that defaults to 40.The title of the text display window. If specified, the value will appear in the title bar of the text display window.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullEdward Lee, Steve Neuendorffer, Jerome Blancnull
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter.
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the value deterministically (independent of the schedule of execution of the actors).
If delayed is false, then the change to the value of the variable is performed immediately. This allows more frequent reconfiguration, and can mimic the operation of PGM's graph variables.
Note that the variable name is observed during preinitialize(). If it is changed after that, the change will not take effect until the next time the model is executed. Moreover, the type of the variable is constrained in preinitialize() to be at least that of the input port for this actor.
The variable can be either any attribute that implements the Settable interface. If it is in addition an instance of Variable, then the input token is used directly to set the value, and the type of the variable is constrained to be the same as the type of the input. Otherwise, then input token is converted to a string and the setExpression() method on the variable is used to set the value.
The variable can occur anywhere in the hierarchy above the current level. If the variable is not found in the container, then the container of the container is checked until we reach the top level.nullFrankie Kwok, Chandrika Sivaramakrishnan, Jared Chase$Id: GenericJobLauncher.xml 30867 2012-10-11 21:49:20Z jianwu $
<p>GenericJobLauncher actor is a generic actor that can create, submit and manage a job on a remote machine accessible through SSH. The user may choose to wait till the job has attained a specific status in the queue - for example till it is Running, Complete, Not in Queue etc.</p>
<p>This actor is based on the JobCreator, JobManager, JobSubmitter and JobStatus actors. It abstracts all the actions of these actors, and the control flow required to combine these in a job launching workflow.</p>
<p>Five more parameters are configurable in 'expert' mode. They are "job submit options" (optional parameters to pass to submitting a job), "binary path" (the full path to the jobmanager commands on the target machine), "executable file" (executable file's name parameter and port), "use given workdir" (use the value of parameter 'workdir' and doesn't create unique sub directory if selected), "Use default fork script" (flag to set if you want the actor to stage the default fork script). To enable Expert mode, double-click the actor and choose 'Preferences' button. In the popup dialogue, choose 'expert mode'.</p>
The submit file to be used at job submission. Absolute (or relative to current dir of Java) file path should be provided. The job file must be provided here, or the contents can be specified in cmdText.Logging information of job status or for any error messages.The name of the job scheduler to be used. Should be a name, for which a supporter class exists as org.kepler.job.JobSupport{scheduler}.classThe machine to be used at job submission. Target in user@host:port format. If user is not provided, the local username will be used. If port is not provided, the default port 22 will be applied. If target is "local" or empty, all commands will be executed locally.The text of the job specification. The job specification must either be provided in this parameter or the file name in cmdFile.One or more jobs that must successfully complete before this job can run.The string array of local input files that will be copied to the working directory. Absolute path names, or relative to current dir of the running java virtual machine, should be provided.Logging information of job status query. Useful to inform user about problems at unsuccessful status query but it also prints out job status and jobid on successful query. This token can be used (delaying it with a Sleep actor) to ask its Status again and again until the job is finished or aborted. This port is an output port of type Object.boolean flag to indicate if job launch was successfulThe string array of remote input files that will be copied to the working directory. Absolute path names, or relative to the user home dir on the remote host should be provided.The working directory in which the actual job submission command will be executed. It should be an absolute path, or a relative one. In the latter case on remote machine, the directory path will be relative to the user's home directory (coming from the use of ssh). </p> By default, a new unique sub directory is created within this workdir based on the job id created by kepler. Job is run from this sub directory. This can be overwritten by setting the parameter "use given workdir".The submit file to be used at job submission. Absolute (or relative to current dir of Java) file path should be provided. The job file must be provided here, or the contents can be specified in cmdText.By default, Kepler creates a unique sub directory within workdir based on the the job id it creates for the job. Job is run from this sub directory. Set this flag to true if you want job to be run directly from workdir instead of a subdir.The name of the job scheduler to be used. Should be a name, for which a supporter class exists as org.kepler.job.JobSupport{scheduler}.class.Wait until the job has a reached specific status. The available status' that can be reached are: any, wait, running, not in queue, and error.The number of tasks for the job - used in a task parallel jobThe executable file to be used at job submission. Absolute path names, or relative to current dir of the running java virtual machine, should be provided. If it is "" then it is considered to be already at the remote site, otherwise the actor will look for it locally and stage it to the <i>workdir</i> before job submission.The machine to be used at job submission. It should be null, "" or "local" for the local machine or [user@]host to denote a remote machine accessible with ssh.Specifying whether the cmdFile is locally stored or on the remote target.The string array of inputfiles. Absolute path names, or relative to current dir of the running java virtual machine, should be provided.The text of the job specification. The job specification must either be provided in this parameter or the file name in cmdFile.Boolean flag to indicate if the default fork script should be staged. If bin path is provided the default script is uploaded to bin path, else it is uploaded to the working directoryAmount of time (in seconds) to sleep between checking job status.The path to the job manager commands on the target machines. Commands are constructed as <i>binPath/command</i> and they should be executable this way.The string array of remote input files. Absolute path names, or relative to the user home dir on the remote host should be provided. The working directory in which the actual job submission command will be executed. It should be an absolute path, or a relative one. In the latter case on remote machine, the directory path will be relative to the user's home directory (coming from the use of ssh). </p> By default, a new unique sub directory is created within this workdir based on the job id created by kepler. Job is run from this sub directory. This can be overwritten by setting the parameter "use given workdir"nullnullnullnullnullEdward A. Leenull<p>StringParameter specifies a persistent string. </p>
<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p>nullnullnullnullnullJianwu Wang$Id: HadoopDirector.java 69 2012-10-05 19:13:16Z jianwu $
A director than runs workflows in Hadoop. This director
converts DDP pattern actors (Map, Reduce, Cross, CoGroup, and
Match) and I/O actors (DDPDataSink and DDPDataSource) into a
Hadoop job and runs it on the server.
<p>
<b>NOTE:</b>Only DDP pattern and I/O actors may be present in
the workflow. Other actors must placed inside the composite
pattern actors or in a different sub-workflow.
</p>The directory where the display related actors in DDP pattern sub-workflows will save their outputs. If it is empty, the display actors will be discarded before execution. More information about display redirect can be found at display-redirect module.The stop time of the model. By default, this is blank, which means that no stop time is specified. If a stop time is specified, it must be a double, and when local time meets or exceeds the stop time, then {@link #postfire()} returns false.DDP engine configuration directory.The local time of model when this director is initialized. By default, this is blank, which indicates that the start time is the current time of the enclosing director when initialize() is invoked, or 0.0 if there is no enclosing director. This can be set to a double value to explicitly specify a start time. Note that if <i>startTime</i> is given a value that is different from the start time of the enclosing director, then local time may be ahead of or behind environment time during execution. Also note that some directors do not advance time (including PN and Rendezvous, for example), in which case, local time remains at the start time value throughout the execution.A comma-separated list of arguments for the job. It is only useful when DDP actors' logics are described by java classes, not sub-workflows.If true, sub-workflows are written to files in a directory. The directory path is printed to stdout when the workflow executes.If true, the temporary dir created on HDFS during its execution will be removed after workflow execution.A comma-separated list of regular expressions of jar files to include.If true, the output directory will be deleted first.The default degree of parallelism for ddp pattern actors. This value is used if the actor's degreeOfParallelism <= 0.nullDaniel Crawlnull
An actor for file data input.Data output.Data input file name.The name of the data format or a fully-qualified class name to parse the data.Data input file name.The number of parallel instances to execute.nullSteve Neuendorffernull
<p>The SDF Director is often used to oversee fairly simple, sequential workflows in which the director can determine the order of actor invocation from the workflow. Types of workflows that would run well under an SDF Director include processing and reformatting tabular data, converting one data type to another, and reading and plotting a series of data points. A workflow in which an image is read, processed (rotated, scaled, clipped, filtered, etc.), and then displayed, is also an example of a sequential workflow that requires a director simply to ensure that each actor fires in the proper order (i.e., that each actor executes only after it receives its required inputs).</p>
<p>The SDF Director is very efficient and will not tax system resources with overhead. However, this efficiency requires that certain conditions be met, namely that the data consumption and production rate of each actor in an SDF workflow be constant and declared. If an actor reads one piece of data and calculates and outputs a single result, it must always read and output a single token of data. This data rate cannot change during workflow execution and, in general, workflows that require dynamic scheduling and/or flow control cannot use this director. Additionally, the SDF Director has no understanding of passing time (at least by default), and actors that depend on a notion of time may not work as expected. For example, a TimedPlotter actor will plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow be connected. Otherwise, the director cannot account for concurrency between disconnected workflow parts. Usually, a PN Director should be used for workflows that contain disconnected actors; however, the SDF Director's allowDisconnectedGraphs parameter may also be set to true. The SDF Director will then schedule each disconnected "island" independently. The director cannot infer the sequential relationship between disconnected actors (i.e., nothing forces the director to finish executing all actors on one island before firing actors on another). However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF model indicate an error.</p>
<p>Because SDF Directors schedule actors to fire only after they receive their inputs, workflows that require loops (feeding an actor's output back into its input port for further processing) can cause "deadlock" errors. The deadlock errors occur because the actor depends on its own output value as an initial input. To fix this problem, use a SampleDelay actor to generate and inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how many times each actor needs to be fired to complete a single iteration of the workflow. This schedule is calculated BEFORE the director begins to iterate the workflow. Because the SDF Director calculates a schedule in advance, it is quite efficient. However, SDF workflows must be static. In other words, the same number of tokens must be consumed/produced at every iteration of the workflow. Workflows that require dynamic control structures, such as a BooleanSwitch actor that sends output on one of two ports depending on the value of a 'control', cannot be used with an SDF Director because the number of tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor consumes and produces exactly one token per channel on each firing. Actors that do not follow the one-token-per-channel firing convention (e.g., Repeat or Ramp) must declare the number of tokens they produce or consume via the appropriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the director's iterations parameter. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both the number of times the workflow iterates and the value of the director's vectorizationFactor parameter. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally only relevant when an SDF workflow contains composite components. In most cases the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeResolution, and constrainBufferSizes parameters can be left at their default values.</p>
<p>For more information about the SDF Director, see the Ptolemy documentation (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdesign3-domains.pdf).</p>
Specify whether to allow disconnected actors in the workflow (by default, all actors are required to be connected). If disconnected actors are permitted, the SDF Director will schedule each disconnected 'island' independently. Nothing "forces" the director to finish executing all actors on one island before firing actors on another. However, the order of execution within each island should be correct. Usually, disconnected graphs in an SDF workflow indicate an error.Specify whether dynamic rate changes are permitted or not. By default, rate changes are not permitted, and the director will perform a check to disallow such workflows. If the parameter is selected, then workflows that require rate parameters to be modified during execution are valid, and the SDF Director will dynamically compute a new schedule at runtime. This is an advanced parameter that can usually be left at its default value.Specify whether buffer sizes are fixed. By default, buffers are fixed, and attempts to write to the buffer that cause the buffer to exceed its scheduled size result in an error. This is an advanced parameter that can usually be left at its default value.The time precision used by this director. All time values are rounded to the nearest multiple of this number. The value is a double that defaults to "1E-10" (which is 10-10). This is an advanced parameter that can usually be left at its default value.Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. A value of 1, meaning that the director will run the workflow once, is often the best setting when building an SDF workflow. The vectorizationFactor is used to increase the efficiency of a workflow by increasing the number of times actors fire each time the workflow iterates. If the parameter is set to a positive integer (other than 1), the director will fire each actor the specified number of times more than normal. The default is 1, indicating that no vectorization should be performed. Keep in mind that changing the vectorizationFactor parameter changes the meaning of a nested SDF workflow and may cause deadlock in a workflow that uses it. Specify whether the execution should synchronize to real time or not. By default, the director does not synchronize to real time. If synchronize is selected, the director will only process the workflow when elapsed real time matches the product of the period parameter and the iteration count. Note: if the period parameter has a value of 0.0 (the default), then selecting this parameter has no effect. This is an advanced parameter that can usually be left at its default value.The time period of each iteration. The value is a double that defaults to 0.0, which means that the director does not increment workflow time. If the value greater than 0.0, the actor will increment workflow time each time it fires. This is an advanced parameter that can usually be left at its default value. nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>
<p>The External Execution actor depends on system-specific executables and is operating-system specific.</p>
<p>To mimic the effect of executing a command in a shell interpreter, set the command parameter to "cmd" (Windows) or "sh" (Windows with Cygwin or Linux), and then provide commands, as a string, via the input port. Note that each passed command must be terminated with a newline. For example, to open a workflow in vergil and run it, set command to "sh" and use a StringConstant actor to pass the input port the string:
"vergil -run model.xml\n exit\n"</p>
An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. If connected, a token must be available on this port before actor will execute.An output port that broadcasts the command's exit code. A non-zero value signifies an error.An array of records that name an environment variable and a value:
{{name = "NAME1", value = "value1"}...}
Where NAME1 is the name of the environment variable, and value1 is the value.
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII.
If the parameter is set to {{name="", value = ""}}, then the environment from the parent process is used. If environmental variables are set with the parameter, the parent values may not be passed to the process. To view the current environment, use the "env" command.
The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. If true, then throw an exception if the subprocess returns non-zero.If a positive integer, then it is the maximum number of times to execute the actor.
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter. By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended. Under Windows 95, the arguments "command.com" and "/C"
are prepended. Under all other platforms, the arguments "/bin/sh"
and "-c" are prepended. </p>
<p>The default value of this parameter is a boolean of value false,
which allows the user to arbitrarily invoke /bin/sh scripts on all
platforms. </p>
<p><b>NOTE:</b> This must be true if file redirection is used in <i>command</i>.</p>
<p><b>NOTE:</b> Under Cygwin, if true, the path environment of the subprocess is not
identical to the path of the calling process. In this case the full path to the program
must be specified.</p>
If true, then actor will wait until subprocess completes.The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullXiaojun Liu, Edward A. Lee, Steve Neuendorffernull<p>The Expression actor evaluates a specified expression (e.g., an addition or multiplication operation), which may reference the values of user-specified input ports, the current time, or the actor's iteration count. The actor outputs the value of the evaluated expression. </p>
<p>Expressions are specified in the Ptolemy expression language via the expression parameter. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. </p>
<p>By default, the expression parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration." </p>
<p>Input ports are created by the user and correspond to variables used in the specified expression. Currently, the Expression actor does not support input multiports. The actor requires all of its inputs to be present. If inputs are not all present, then the actor will generate an error. </p>
<p>Note: the Expression actor can be used instead of many of the arithmetic actors, such as AddSubtract, MultiplyDivide, and TrigFunction. However, those actors will be usually be more efficient, and sometimes more convenient to use.</p>An output port that broadcasts the value of the evaluated expression. The actor automatically determines the type based on the type of the input.An expression to evaluate. Expressions are specified in the Ptolemy expression language. For more information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf. By default, the parameter is empty, and attempting to execute the actor without first specifying an expression generates an error. Expressions can refer to the values of inputs by the port name; to the current time by the identifier "time"; and to the current iteration count by the identifier "iteration."nullDaniel Crawlnull
An actor for file data output.The data to be written.After data has been written, this port outputs the path.The path to write the data.The name of the data format or a fully-qualified class name to parse the data.The path to write the data.The number of parallel instances to execute.