LogixNG Tutorial - Chapter 23

# LogixNG Tutorial - Chapter 23 ## Using LogixNG in other parts of JMRI or by third party software System names of LogixNG actions and expressions are usually not exposed to the user. This information is mainly intended to JMRI developers that want to use LogixNG as a backbone for other features, like SSM. And for developers that uses JMRI as a library and want to use LogixNG as a backbone for their features. Like everything else in JMRI, items in LogixNG have a system name and optional a user name. All system names in LogixNG can be automatically generated and that's recommended for new or unexperienced users. It's recommended to give LogixNGs and ConditionalNGs a user name, but for expressions and actions, that is usually not needed. The section below describes the syntax for system names in LogixNG. It's highly recommended for new and unexperienced users to skip this section and only use automatically generated system names and to give LogixNGs and ConditionalNGs a user name. Each system name in JMRI starts with the system prefix, which for the internal connection usually is "I", but may be something different, following by the type letter "Q" for LogixNG. Together it's "IQ", which also has the meaning "Intelligence quotient", and setting up complex rules in LogixNG can be training for your brain... Within LogixNG, there are several types of system names, for digital actions, digital expressions, string actions, and so on. If each of these had their own type letter, like turnouts and sensors have, JMRI would had run out of available type letters. Instead, LogixNG has sub type letters for each of these. System names may have these forms. Here, "123" is an arbitrary number. Note that only numbers, not arbitrary characters, is allowed in the latter part of the system name.
IQ123 | LogixNG
IQC123 | ConditionalNG
IQAA123 | Analog Action
IQAE123 | Analog Expression
IQDA123 | Digital Action
IQDBA123 | Digital Boolean Action
IQDE123 | Digital Expression
IQSA123 | String Action
IQSE123 | String Expression
IQM123 | LogixNG Module
If the user wants to have an arbitrary string in the latter part of the system name, the dollar sign must be added. Here, "characters" is some arbitrary characters. The reason for why the dollar sign is needed is that LogixNG must be able to resolv which characters is the system name, for example IQ, and which part of the string is the sub system prefix, for example DA.
IQ$characters | LogixNG
IQC$characters | ConditionalNG
IQAA$characters | Analog Action
IQAE$characters | Analog Expression
IQDA$characters | Digital Action
IQDBA$characters | Digital Boolean Action
IQDE$characters | Digital Expression
IQSA$characters | String Action
IQSE$characters | String Expression
IQM$characters | LogixNG Module
JMRI can auto create system names for the user. In that case, the text :AUTO: is added. Note that only numbers, not arbitrary characters, is allowed in the latter part of the system name. The user should never create a system name with :AUTO: .
IQ:AUTO:123 | LogixNG
IQC:AUTO:123 | ConditionalNG
IQAA:AUTO:123 | Analog Action
IQAE:AUTO:123 | Analog Expression
IQDA:AUTO:123 | Digital Action
IQDBA:AUTO:123 | Digital Boolean Action
IQDE:AUTO:123 | Digital Expression
IQSA:AUTO:123 | String Action
IQSE:AUTO:123 | String Expression
IQM:AUTO:123 | LogixNG Module
JMRI may create system names for internal use for JMRI itself. In that case, the text :JMRI: is added. Here, "characters" is some arbitrary characters. The user should never create a system name with :JMRI: .
IQ:JMRI:characters | LogixNG
IQC:JMRI:characters | ConditionalNG
IQAA:JMRI:characters | Analog Action
IQAE:JMRI:characters | Analog Expression
IQDA:JMRI:characters | Digital Action
IQDBA:JMRI:characters | Digital Boolean Action
IQDE:JMRI:characters | Digital Expression
IQSA:JMRI:characters | String Action
IQSE:JMRI:characters | String Expression
IQM:JMRI:characters | LogixNG Module
JMRI may be used as a library for external applications. These applications may create system names for internal use for themselves. In that case, the text :JMRI-LIB: is added. Here, "characters" is some arbitrary characters. The user should never create a system name with :JMRI-LIB: .
IQ:JMRI-LIB:characters | LogixNG
IQC:JMRI-LIB:characters | ConditionalNG
IQAA:JMRI-LIB:characters | Analog Action
IQAE:JMRI-LIB:characters | Analog Expression
IQDA:JMRI-LIB:characters | Digital Action
IQDBA:JMRI-LIB:characters | Digital Boolean Action
IQDE:JMRI-LIB:characters | Digital Expression
IQSA:JMRI-LIB:characters | String Action
IQSE:JMRI-LIB:characters | String Expression
IQM:JMRI-LIB:characters | LogixNG Module