Project

General

Profile

DTXr doc » History » Revision 17

Revision 16 (Torbjorn Carlqvist Admin, 09/07/2021 09:02 PM) → Revision 17/71 (Torbjorn Carlqvist Admin, 09/07/2021 09:04 PM)

h1. DTXr doc 

 h3. Installation 


 * System Requirements 
 DTXr can run on any machine that can run Java 11 and has sufficient with RAM and disk capacity. 
 Absolute minimum 512Mbyte of RAM and 200Mb of disk space. But best is >1GByte of RAM and 1Gbyte of disk space available for DTXr runtime alone. 
 A good choice is a Raspberry 2,3 or 4 with >1GByte on board and a >8Gbyte SD installed and of course any PC/Server works equally good. 

 * Network Requirements 
 DTXr can run stand alone without any active network connection. In that case the management pages is accessible via localhost interface. But for DTXr to be a fully functional BACnet/IP device it must be connected to an IP network that offers IP address via DHCP and where broadcast traffic is allowed. 

 * Download DTXr software packages 
 Currently only customers to DAVITOR can download DTXr. Contact info@davitor.com for purchase information. 

 * Install on Linux 
 ** For Raspberry with Rasbian OS there is special install scripts, please follow these steps: 
 ### _TBD..._ 
 ** For other Linux distributions follow this steps 
 ### _TBD..._ 

 * Install on Windows 
 ** Follow these steps: 
 ### _TBD..._ 

 h3. Setup 

 DTXr is setup via Menu -> Setup page. 

 * System 
 ** Administrator password - Password for the default (and not changeable) account "admin". Default is "davitor". 
 ** Operator username - Username for the typical user of any HMI developed on this device. Typically a machine operator. [Optional] 
 ** Operator password - Password for the operator user. [Optional] 
 ** Operator start page - Set any web page in the project folder that will automatically shown on an operator login. [Optional] 
 ** Log Level - The system severity level for the system_app.log in /Logs tree directory. 

 * BACnet 
 ** _TBD..._ 

 * Davitor Advantage 
 ** _TBD..._ 

 * Wireless Mesh 
 ** _TBD..._ 

 * Bluetooth 
 ** _TBD..._ 

 * External Database Access 
 ** _TBD..._ 

 * File Integration 
 ** _TBD..._ 

 * HTTP 
 ** _TBD..._ 

 * LION Interface 
 ** _TBD..._ 

 * IoT HUB (BETA) 
 ** _TBD..._ 


 h3. User's Guide 

 * _TBD..._ 

 h3. Developer's Guide 

 * Javascript 

 [[#Commands|Commands]] [[Javascript]] 
 [[#Events|Events]] 

 --- 

 h2. Commands 


 h3. *print*    - Prints a message to footer log window as well as the automation.log file 

 <pre><code class="javascript">print("hello");</code></pre> 

 h3. *readProperty*    - Reads an object property value 

 <pre><code class="javascript"> 
 /*********************************************************************************************** 
  * @param {Number} device - The device id 
  * @param {Number} objectType - The object type. Both id and enumerated names can be used. 
  * @param {Number} objectInstance - The object instance. Must be a positive number. 
  * @param {Number} propertyId - The property id. Both id and enumerated names can be used. 
  * @return {*} The result can be of any type. It is dependent of the object type and property. Primitive values such as numbers and string but also JSON formatted text. 
  ***********************************************************************************************/ 

 //Reads a present value from analog input object 0. 
 Controller.readProperty(85343,analogInput,0,presentValue); 

 //Use the result to print and in logic 
 res = Controller.readProperty(85343,analogInput,0,presentValue); 
 print(res); 
 if ( res > 0 ){ 
   print("value larger than 0!"); 
 } 
 </code></pre> 

 h3. *eventSubscribe*    - Send request for intrinsic reporting notification to a remote node. 

 <pre><code class="javascript"> 
 /*********************************************************************************************** 
  * @param {Number} device - The device id 
  * @param {Number} notificationClass - This is the instance of the remote notification class where the request will be handled. 
  * @return N/A 
  ***********************************************************************************************/ 

 //Request for notification from device 84757 and notification class 0 
 Controller.eventSubscribe(84757,0); 

 </code></pre> 

 h2. Events 

 h3. *eventNotificationReceived* - Called when an intrinsic report notification is received. 

 <pre><code class="javascript"> 
 /*********************************************************************************************** 
  * @param {Number} processIdentifier - Event process on the caller side 
  * @param {Number} initiatingDevice - The device that send the event 
  * @param {Number} object - The source object in readable format  
  * @param {Number} objectType - The source object of the event 
  * @param {Number} objectInstance - The instance of source object 
  * @param {String} timeStampUTC - Event timestamp in UTC format 
  * @param {Number} notificationClass - The NC handling this event on remote node 
  * @param {Number} priority - Event priority 
  * @param {Number} eventType - The type of event received 
  * @param {String} messageText - Readable notification message 
  * @param {Number} notifyType - Type of notification [0:Event,1:Alamr,2:AckNotif] 
  * @param {Boolean} ackRequired - true if ack is required to clear this event on the remote node 
  * @param {String} fromState - The previous state 
  * @param {String} toState - The current state after the change 
  * @param {Object} eventValues - A map of specific map of values for the particular eventType 
  ***********************************************************************************************/ 
 function eventNotificationReceived(processIdentifier,initiatingDevice,object,objectType,objectInstance,timeStampUTC,notificationClass,priority,eventType,messageText,notifyType,ackRequired,fromState,toState,eventValues){ 
 //Use this event to act on notifications that is set to be subscribed by this device. 
 } 
 </code></pre> 
 [[IDE]]