Complex Typed System Assets

Revision as of 04:56, 23 February 2023 by Wikiadmin (talk | contribs) (Examples)
CTSA

almbus-ip

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 and ASES_0UE100PRG02 as main outputs, indicates Power status on Primitive Devices ASES_0FE00050005 and ASES_0FE00050006 and shuts down the CTSA Device CSES_0000P09FA4101 when activated.

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();
								
								}
								
							}
							

						}
					
					})()
				);
				
				
			}
		
		})()
	);

See also