Complex Typed System Assets
CTSA | |
---|---|
Developer | Netroda Technologies |
Type | Software Interface |
Programmed in | Java, Extensible Object Script |
Reference Class | ESComplexAsset |
Initial Release | 2018 |
Platform | Extensible Services / Server for Automation |
Complex Typed System Assets (abbreviation: CTSA) is software interface for creation of independent, virtual devices that can perform specific pre-programmed actions on behalf of the ES/S-A Platform. today, most devices controlled by ES/S-A Systems use CTSA Classes to monitor, control and program functionality of the system.
Overview
The CTSA Classes are used a a middleware or abstraction layer between the more technically-centered CTSA Control interface of ES/S-A Systems and primitive devices, either controlled by the Primitive Abstraction Service, or controlled directly using Serial, Network or Wireless connections. The Control program can directly invoke all public methods published by CTSA Clases and enables ready-from-deploy integration in the EOS Scripting enviroment.
Technical
Included features
- Portal
- Hardware Status Indication
- Hardware Failure detection and monitoring
- API Service
- Control User Interfaces
- Ata
- CiscoXML
- Authority-Aware
- AuthorityAware-Caller
- AuthorityAware-Service
- Direct control of PTSA Resources
- Possibility to set up network connections
Message Types
Alarm Type | Description |
---|---|
Danger | Indicates a dangerous situation occuring in the current context, for example mass shootings, terrorism attacks etc. |
Fire | Requests immediate evacuation of the assigned area, as the building or structure is on fire |
Evacuate | Requests immediate evacuation of the assigned areas |
Havary | Raised when building infrastructure has severe malfunctions, like leaking pipes causing flooding or overheating of a structure due to failure on climatic systems |
Catastrophy | Used for scenarios where a natual catastrophy is awaited or happening, for example tsunamis, hurricanes or thunderstorms |
Clear | Indicates that a alarm has been revoked. |
Information | Generous, non-dangerous announcements |
Examples
A Example CTSA Setup instruction (*.ctor.eos) for a Hue-Controlled LED Lamp. Programmed in Extensible Object Script of a ESCompDimmableDichromaticDaylightLEDLamp (ES-Compatible Dicromatic/Daylight LED Lamp). The Device class represents the haredware or compunt representation and functions.
In the example below, the CTSA Class keeps track of the status, Uses the primitive devices:
- ASES_0UE200PRG02 (led0) - Cool White Or Color 0
- ASES_0UE100PRG02 (led1) - Warm White Or Color 1
as main outputs, indicates Power status on Primitive Devices
- ASES_0FE00050005 CTSAPowerDecreaseIndicator_Bool
- ASES_0FE00050006 CTSAPowerIncreaseIndicator_Bool
and shuts down the CTSA Device CSES_0000P09FA4101 when activated.
The example also sets the CTSA-Class specific flags setAutoHueMode to AutoHueMode.DaytimeThreshold (means that the devices switches discretely from cool white to warm white when sunset is happening) and enables the AutoHue-Functionality
CTSA.registerComplexAsset( "0000P09F0EA07", CTSADeviceClasses.ESCompDimmableDichromaticDaylightLEDLamp, "Indirect Daylight, Hallway, Example Floor", "LED Recessed Indirect Light", "Some Company, Co. Ltd.", new Lambda.CTSADeviceVoltageDC(12), [ new Lambda.CTSASetupPrimitiveDeviceBinding("led0","ASES_0UE200PRG02"), new Lambda.CTSASetupPrimitiveDeviceBinding("led1","ASES_0UE100PRG02") ], [ new Lambda.CTSAPowerDecreaseIndicator_Bool("ASES_0FE00050005",false), new Lambda.CTSAPowerIncreaseIndicator_Bool("ASES_0FE00050006",false) ], [], new (function() extends Lambda.CTSASetupRunTask(){ public function run(self){ // run task when setup has finished debug("Finalizing ESCompDimmableDichromaticDaylightLEDLamp 0000P09F0EA07..."); self.setAutoHueMode(CTSADeviceClasses.ESCompDimmableDichromaticDaylightLEDLamp.AutoHueMode.DaytimeThreshold); self.setAutoHueEnabled(true); self.addEventListener( new (function() extends Lambda.CTSAEventListener(){ public function onPowerOn(e){ debug("Device has been Enabled 0000P09F0EA07!"); // Make sure associated LED Effect Device on same DC lane is set to standby, if not // set the device CSES_0000P09FA4101 to standby to prevent interruptions due to // power supply overload. var ledEffect = getComplexAssetById("CSES_0000P09FA4101"); if(ledEffect != null){ if(ledEffect.isPoweredOn()){ ledEffect.requestPowerStandby(); } } } })() ); } })() );