Do you have a question about the Crestron SIMPL+ and is the answer not in the manual?
Details on migrating from X-Generation to 2-Series targets in SIMPL+ programming.
Highlights key differences in functionality and syntax between X-Generation and 2-Series targets.
Describes the SIMPL+ programming environment and its features for version 3.00.
Explains how to select target control systems (X-Generation or 2-Series) for compilation.
Details how to configure preferences within the SIMPL+ environment for text editing and settings.
How to specify categories for SIMPL+ modules using the #CATEGORY directive.
Explains syntax conventions, variable naming, and comments used in SIMPL+.
Details the rules and limitations for declaring variable names in SIMPL+.
Describes the two styles of comments (single-line and block) in SIMPL+.
Explains how to use relative path names for file operations in SIMPL+.
Introduces arithmetic, bitwise, and rational operators in SIMPL+.
Lists and explains relational operators used for comparisons in SIMPL+.
Details operators used for string manipulation and comparison in SIMPL+.
Explains the differences in arithmetic operations between signed and unsigned values.
Details how data types are converted between different formats in SIMPL+.
Explains operator priority and the use of parentheses for grouping in expressions.
Describes decimal, hexadecimal, and character constant formats in SIMPL+.
Explains module task execution time and switching in X-Generation systems.
Details task switching behavior and control mechanisms in 2-Series systems.
Explains the structure and template for SIMPL+ constructs and functions.
Covers the declaration and usage of one and two-dimensional arrays in SIMPL+.
Explains how directives control symbol attributes without generating SIMPL+ code.
Specifies the category for a SIMPL+ module in the symbol tree.
Includes code from a Crestron-provided library file.
Ensures program variables retain values after power loss.
Ensures program variables do not retain values after power loss.
Defines constants that will be substituted in the source file.
Displays help text when F1 is pressed on a symbol.
Pairs directives to create multi-line help text for symbols.
Displays a short tactical clue in the status bar for a symbol.
Conditional compilation based on whether a constant is defined.
Conditional compilation based on whether a constant is NOT defined.
Controls names, types, and numbers of inputs/outputs in SIMPL+ symbols.
Details valid combinations for declaring input/output lists and arrays.
Explains SIMPL+ handling of fixed-size and variable-size arrays for I/O.
Routes analog inputs from SIMPL program into SIMPL+ program.
Routes values from SIMPL+ program to SIMPL program.
Routes serial inputs from SIMPL program into SIMPL+ program.
Routes digital inputs from SIMPL program into SIMPL+ program.
Routes values from SIMPL+ program to SIMPL program.
Declares integer values local to the SIMPL+ program.
Declares long integer values local to the SIMPL+ program.
Declares signed integer values local to the SIMPL+ program.
Declares signed long integer values local to the SIMPL+ program.
Declares a string local to the SIMPL+ program.
Routes serial inputs from SIMPL program into SIMPL+ program.
Routes serial strings from SIMPL+ program to SIMPL program.
Defines structures to group related variables as a single unit.
Global integer/string variables do not retain value if power is lost.
Global integer/string variables retain value if power is lost.
Key considerations for SendMail function: parameters and authentication.
Introduces functions (CHANGE, EVENT, PUSH, RELEASE) for activating events.
Executes statements when an input signal changes state.
Executes statements when any input to the SIMPL+ symbol changes.
Executes statements on the rising edge of a DIGITAL_INPUT.
Executes statements on the trailing edge of a DIGITAL_INPUT.
Refers to multiple event functions followed by a single block of code.
Defines expressions and the two types of statements: Simple and Complex.
Explains how loops perform sections of code multiple times.
Executes statements until an expression evaluates to true.
Executes statements while a variable iterates through a specified range.
Executes statements as long as an expression does not evaluate to zero.
Terminates the innermost loop before the exit condition is met.
Provides a direct method for complex IF-ELSE-IF statements using cases.
Executes code blocks based on conditional expressions.
Allows code block execution based on integer expressions, similar to IF-ELSE-IF.
Functions for performing generalized operations on arrays.
Determines the index of an input list array that has changed.
Finds columns in 2D array or size of 1D array.
Returns the number of rows for two-dimensional arrays.
Sets every element of an array to a specified initial value.
Functions for bit and byte masking operations.
Determines the state of a specified bit in a string byte.
Returns the integer equivalent of a byte at a specific string position.
Returns the upper (most significant) 8-bits of an Integer.
Returns the lower (least significant) 8-bits of an Integer.
Rotates an INTEGER to the left by a specified number of bits.
Rotates an INTEGER to the right by a specified number of bits.
Rotates a LONG_INTEGER to the left by a specified number of bits.
Rotates a LONG_INTEGER to the right by a specified number of bits.
Converts data between integer and string types in SIMPL+ programs.
Converts a STRING to an INTEGER value.
Converts a STRING to a LONG_INTEGER value.
Returns the ASCII character corresponding to an integer value.
Converts an INTEGER to its string equivalent.
Converts an INTEGER to its hexadecimal string equivalent.
Converts a LONG_INTEGER to its string equivalent.
Converts a LONG_INTEGER to its hexadecimal string equivalent.
Details file handle access and restrictions within SIMPL+.
Lists and explains error codes returned by file functions.
Discusses considerations for file I/O across different systems.
Tests if a compact flash card is installed in the control system.
Signifies completion of file operations to the operating system.
Tests if the current file pointer is at the beginning of the file.
Closes a file opened previously by FileOpen.
Returns the current date of a specified file in a given format.
Returns the day of the week of a file as a STRING.
Deletes a specified file from the file system.
Tests whether the current file pointer is at the end of the file.
Returns an integer for the current day of the month.
Returns an integer for the current day of the week.
Returns an integer for the number of hours in the current time.
Returns an integer for the number of minutes in the current time.
Returns an integer for the current month of the year.
Returns an integer for the number of seconds in the current time.
Returns an integer for the current year.
Structure used to retrieve information about a file.
Returns the length of a file.
Returns the month of the file date as a string.
Opens a file, returning a file handle.
Reads data from a file into a buffer.
Positions the current file pointer.
Returns a string containing the current system time.
Writes data from a buffer to a file.
Signifies end of find operation to the operating system.
Searches a directory for files matching a given specification.
Continues directory search from FindFirst specification.
Returns the complete path name of the current working directory.
Returns whether a specified file is a directory.
Returns whether a specified file is hidden.
Returns whether a specified file is marked as read-only.
Returns whether a specified file is a system file.
Returns whether a specified file is a volume label.
Creates a directory with a specified name.
Reads an integer from a file.
Reads an integer array from a file.
Reads a long integer from a file.
Reads a long integer array from a file.
Reads a signed integer from a file.
Reads a signed integer array from a file.
Reads a signed long integer from a file.
Reads a signed long integer array from a file.
Reads a string from a file.
Reads a string array from a file.
Reads data from a file into a structure.
Removes a directory with a specified name.
Changes the working directory to a specified name.
Signifies start of file operations to the operating system.
Waits for a compact flash card to be inserted.
Writes an integer to a file.
Writes an integer array to a file.
Writes a long integer to a file.
Writes a signed integer to a file.
Writes a signed integer array to a file.
Writes a signed long integer to a file.
Writes a signed long integer array to a file.
Writes a string to a file.
Writes a string array to a file.
Writes data from a structure to a file.
Functions for general mathematical operations in SIMPL+.
Takes the absolute value of a SOURCE parameter.
Determines the maximum of two values based on an unsigned comparison.
Determines the minimum of two values based on an unsigned comparison.
Computes the result of (VAL1 * VAL2) / VAL3.
Determines the maximum of two values based on a signed comparison.
Determines the minimum of two values based on a signed comparison.
Allows a SIMPL+ program to generate a random number.
Generates a random number within a specified range.
Examines or modifies the contents of string variables.
Deletes the contents of a specified buffer.
Finds the position of the first occurrence of a MATCH_STRING.
Concatenates data until a specified delimiter is reached.
Returns value at position 1 and shifts the buffer.
Takes the leftmost NUM characters of a SOURCE string.
Returns the length of the actual string.
Converts characters in a source string to lowercase.
Returns NUM characters from SOURCE, starting at START position.
Removes characters from string up to and including a delimiter.
Finds the position where MATCH_STRING last occurs in SOURCE_STRING.
Takes the rightmost NUM characters of a SOURCE string.
Overwrites bytes in DESTINATION with bytes from SOURCE.
Converts characters in a source string to uppercase.
Constructs that control system behavior and change resultant flow.
Forces a task switch and starts a timer for a specified duration.
Forces task switch for SIMPL program output processing.
Pulses an output high then low for a specified length of time.
Exits a CHANGE, PUSH, RELEASE event, or a loop in main().
Functions controlling SIMPL+ communication with Cresnet devices and CPU.
Places a notification message into the control system's error log.
Places a warning message into the control system's error log.
Places an error message into the control system's error log.
Tests whether an NVRam Disk is currently installed.
Retrieve information about current date and time from system clock.
Returns current date string with specified format.
Returns the day of the week as a STRING.
Returns an integer for the current day of the month.
Returns an integer for the current day of the week.
Returns an integer for the number of hours in current time.
Returns an integer for hundredths of a second.
Returns an integer for the number of minutes in current time.
Returns an integer for the current month of the year.
Returns an integer for the number of seconds in current time.
Returns an integer for the number of system ticks.
Returns an integer for the current year.
Returns the current month as a string.
Sets the system clock.
Sets the system date.
Returns a string containing the current system time.
Describes events processed a predetermined time after triggering.
Cancels all WAIT events for the current SIMPL+ program.
Cancels a specified named WAIT event.
Pauses all WAIT events for the current SIMPL+ program.
Pauses a specified named WAIT event.
Resumes all previously paused WAIT events.
Resumes a specified named WAIT event that was paused.
Changes the time for a wait event in progress.
Adds an event to a list to be executed after a specified time.
Defines functions to modularize code for easier performance or reading.
Defines the syntax for creating user-defined functions with return types.
Details how parameters are passed to functions using BYVAL and BYREF.
Explains keyword meanings for passing variables to functions.
Explains the syntax for returning values using the RETURN statement.
Explains the syntax for calling functions and using the CALL keyword.
Explains including and using function libraries via directives.
Lists the order of constructs and statements in a SIMPL+ program layout.
Lists runtime errors and how to view messages.
Accessing an array element outside its declared range.
MAKESTRING/PRINT with invalid format specifier.
SWITCH construct exceeds maximum CASE statements.
Cannot call user-defined function from an external library.
Return stack exceeds size due to repeated interruptions.
Identifier declared more than once.
Undefined variables or functions used.
Missing parenthesis, semicolon, or braces.
Incorrect or missing variable types in declarations or arguments.
Unmatched symbols or keywords used incorrectly.
Unexpected symbols in compiler directives.
Invalid values used with #DEFINE_CONSTANT.
Array index is missing when accessing an array element.
Invalid integer arguments or undefined variables.
Missing structure members or structure does not contain member.
#SYMBOL_NAME contains illegal character like semicolon.
Missing return values in functions that require them.
Unterminated string constants.
Statements that do not perform an action.
Statements outside of function scope.
Error count exceeds maximum limit.
Invalid numeric or string expressions.
Invalid hexadecimal escape sequences (\xXX) in strings.
Missing or invalid array sizes for STRING, STRING_INPUT, BUFFER_INPUT.
Invalid array index usage.
Variable names exceed maximum length.
Declaration types not allowed within structures.
Local variables not declared at the top of a function.
Local functions not supported.
I/O declarations used locally within functions.
Variables not declared before array declarations.
Global variable or I/O declarations in library files.
Compiler directives not placed before global variable declarations.
Compiler directives used within function scope.
Undefined, missing, or duplicate Wait Labels.
Array boundary exceeding maximum size.
Invalid minimum array size.
Minimum array size not allowed for certain datatypes.
Illegal assignments due to type mismatch or unassignable variables.
ReadOnlyByRef variable used for assignment.
STRING_OUTPUT variable used for assignment.
Argument cannot be passed by reference (e.g., STRING_INPUT).
Arrays passed by value (arrays must be passed by reference).
Incomplete or unmatched number of arguments in function calls.
Input or output signal datatype expected but not found.
Incomplete format string arguments or invalid specifiers.
Invalid format specifiers used in format strings.
Constant (0, 1, or 2) not found for MakeString argument 1.
Missing or invalid array arguments in function calls.
I/O variables passed to read file functions.
Function Main cannot contain parameters or return a value.
Duplicate CASE statements or non-integer constants in CSwitch.
Switch/CSwitch statements with 'default' but no 'case' labels.
#CATEGORY directive error due to non-existent or invalid category number.
EVENT statement defined more than once per module.
Functions like TerminateEvent can only be used within PUSH, CHANGE, RELEASE, EVENT.
'break' statement must be contained within a loop construct.
GetLastModifiedArrayIndex may return ambiguous index for multiple input arrays.
Missing filename following #USER_LIBRARY or #CRESTRON_LIBRARY.
Compiler reached end of file before completing functions or statements.
Specified file could not be opened or created.
Specified file not found within the Crestron Library archive.
'Return' statement terminates current Wait statement's function scope.
'TerminateEvent' terminates current Wait statement's scope.
#CATEGORY_NAME defined more than once.
Data loss from LONG_INTEGER to INTEGER assignment.
Obsolete functions for system interfacing with Cresnet devices and CPU.
Retrieves state of join number on a particular CIP ID.
Retrieves state of join number on a Cresnet Network ID.
Retrieves state of join number on a particular card slot.
Retrieves SIMPL signal number for an input or output.
Sends a specified string packet onto the Cresnet network.
Sends a specified string packet to the Cresnet CPU.
Sets the state of a join number on a particular CIP ID.
Sets the state of a join number on a Cresnet Network ID.
Sets the state of a join number on a particular card slot.
Special purpose variables for working with CEN-OEM serial ports.
Causes a short break to be transmitted on the port when set to non-zero.
Variable treated as DIGITAL_INPUT for Carrier Detect.
Variable treated as DIGITAL_INPUT for Clear To Send (handshaking).
Variable treated as DIGITAL_OUTPUT to signify Data Terminal Ready.
Causes the start of a break being transmitted on the port.
Controls maximum embedded packet size transmitted on Ethernet port.
Controls delay in milliseconds between sending bytes in a string.
Procedures for returning merchandise for credit, exchange, or service.
Details Crestron's warranty terms for products and software.
Lists registered trademarks and product names.
| Purpose | Control system programming |
|---|---|
| Integration | Crestron control systems |
| Language Type | Proprietary |
| Platform | Windows |
| Developer | Crestron Electronics |
| Category | Software |