Author: vingtetun
Date: 2009-02-16 00:22:42 +0100 (Mon, 16 Feb 2009)
New Revision: 3645
Modified:
software_suite_v2/tuxware/tuxhttpserver/trunk/src/data/js/TuxAPI.js
Log:
* Add some leds methods implementation
Modified: software_suite_v2/tuxware/tuxhttpserver/trunk/src/data/js/TuxAPI.js
===================================================================
--- software_suite_v2/tuxware/tuxhttpserver/trunk/src/data/js/TuxAPI.js
2009-02-15 19:34:36 UTC (rev 3644)
+++ software_suite_v2/tuxware/tuxhttpserver/trunk/src/data/js/TuxAPI.js
2009-02-15 23:22:42 UTC (rev 3645)
@@ -72,7 +72,6 @@
return _eventHandlers;
};
-
var _fillEventHandlers = function(self){
for( var i = 0 ; i < SW_NAME_DRIVER.length ; i++ ){
_eventHandlers.insert( SW_NAME_DRIVER[i] );
@@ -94,7 +93,7 @@
var _onDisconnect = function(){
self.event.stop();
- }
+ };
this.server = new TuxAPI_server(this, aHost, aPort);
this.event = new TuxAPI_event(this);
@@ -504,6 +503,8 @@
];
+
+
/*****************************************************************************
* Button Namespace
* **************************************************************************/
@@ -515,6 +516,8 @@
};
+
+
/*****************************************************************************
* Button Switch Namespace
* **************************************************************************/
@@ -568,6 +571,8 @@
};
+
+
/*****************************************************************************
* Button Remote Namespace
* **************************************************************************/
@@ -622,6 +627,7 @@
+
/*****************************************************************************
* Access Namespace
* **************************************************************************/
@@ -635,9 +641,9 @@
},
this.waitAcquire = function( aTimeout, aPriorityLevel ){
- var start = date.getTime();
+ var start = (new Date()).getTime();
while (!this.acquire(priorityLevel)){
- if( start + aTimeout > date.getTime() ) return false;
+ if( start + (aTimeout*1000) > (new Date()).getTime() ) return false;
}
return True
},
@@ -795,34 +801,39 @@
+
/*****************************************************************************
* TTS Namespace
* **************************************************************************/
var TuxAPI_TTS = function( self ){
var _eventHandlers = self.getEventHandlers();
+ var _pitch = 100;
+ var _locutor = 'Ryan';
+ var _encoding = 'latin-1';
this.isConsole = function(){
return false;
},
- this.setEncoding = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.setEncoding = function( anEncoding ){
+ _encoding = anEncoding;
},
this.getPitch = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ return _pitch;
},
- this.setPitch = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.setPitch = function( aPitch ){
+ if( aPitch >= 50 && aPitch <= 200 )
+ _pitch = aPitch;
},
this.getLocutor = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ return _locutor;
},
- this.setLocutor = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.setLocutor = function( aLocutor ){
+ _locutor = aLocutor;
},
this.speakAsync = function(){
@@ -834,7 +845,9 @@
},
this.speakFlush = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ var rv = this.request( 'tts', 'flush', {} );
+ if (rv.get("result") == "Success") return true;
+ return false;
},
this.speak = function(){
@@ -842,41 +855,53 @@
},
this.stop = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ var rv = this.request( 'tts', 'stop', {} );
+ if (rv.get("result") == "Success") return true;
+ return false;
},
- this.setPause = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.setPause = function( aValue ){
+ if( aValue == undefined ) aValue = true;
+ if( aValue ) aValue = 'True';
+ else aValue = 'False';
+ var rv = this.request( 'tts', 'pause', { 'value':aValue } );
+ if (rv.get("result") == "Success") return true;
+ return false;
},
this.getVoices = function(){
return TUXAPI_NOT_IMPLEMENTED;
},
- this.registerEventOnVoiceList = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.registerEventOnVoiceList = function( aFunc ){
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.register(ST_NAME_VOICE_LIST, aFunc, null );
},
this.unregisterEventOnVoiceList = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.unregister(ST_NAME_VOICE_LIST, null );
},
- this.registerEventOnSoundOn = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.registerEventOnSoundOn = function( aFunc ){
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.register(ST_NAME_TTS_SOUND_STATE, aFunc, 'ON' );
},
this.unregisterEventOnSoundOn = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.unregister(ST_NAME_TTS_SOUND_STATE, 'ON' );
},
- this.registerEventOnSoundOff = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.registerEventOnSoundOff = function( aFunc ){
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.register(ST_NAME_TTS_SOUND_STATE, aFunc, 'OFF' );
},
this.unregisterEventOnSoundOff = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ return __eventHandlers.unregister(ST_NAME_TTS_SOUND_STATE, 'OFF' );
}
-
};
@@ -884,8 +909,6 @@
/*****************************************************************************
* Server Namespace
- * TODO
- * Should use an emit / notify instead of a direct call
* **************************************************************************/
var TuxAPI_server = function( self, aHost, aPort ){
var _eventHandlers = self.getEventHandlers();
@@ -1060,11 +1083,12 @@
};
+
+
/*****************************************************************************
* Event Handler Namespace
* **************************************************************************/
var TuxAPI_eventHandler = function(self){
-
var _funcList = [];
var _context = [];
@@ -1081,8 +1105,8 @@
};
var _sleep = function( aTime ){
- var start = date.getTime();
- while( start + aTime > date.getTime() ) true;
+ var start = (new Date()).getTime();
+ while( start + (aTime*1000) > (new Date()).getTime() ) true;
return;
};
@@ -1145,7 +1169,7 @@
this.waitCondition = function( aCondition, aTimeout ){
// We don't have any wait/pause/Thread.sleep function in javascript
- // so we she do.... ugly...things...
+ // so we do.... ugly...things...
// I have take a look at stuff name narrativeJS and Co but it is not really
// an option in our case (or maybe i've made a mistake)
return TUXAPI_NOT_IMPLEMENTED;
@@ -1159,6 +1183,7 @@
+
/*****************************************************************************
* Event Handlers Namespace
* **************************************************************************/
@@ -1346,7 +1371,6 @@
}
return true;
}
-
};
@@ -1362,14 +1386,23 @@
};
+
+
/*****************************************************************************
* Resource LedBase
* **************************************************************************/
var TuxAPI_LedBase = function( self, aName ){
var _eventHandlers = self.getEventHandlers();
+ var _floatToString = function( aFloat ){
+ var rv = aFloat.toString();
+ if( rv.indexOf( '.' ) == -1 )
+ rv += '.0';
+
+ return rv;
+ };
+
var _changeIntensity = function( aType, anIntensity ){
-
if( aType == LFX_NONE ){
var rv = self.server.request( 'leds', 'on' , { 'intensity':anIntensity,
'leds':aName } );
if (rv.get("result") == "Success") return true;
@@ -1406,21 +1439,70 @@
this.blinkDuring = function( aSpeed, aDuration, aFXType ){
if( aFXType == undefined ) aFXType = LFX_NONE;
var rv = this.blinkDuringAsync( aSpeed, aDuration , aFXType );
- var start = date.getTime();
- while( start + aDuration > date.getTime() ) true;
+ var start = (new Date()).getTime();
+ while( start + (aDuration * 1000) > (new Date()).getTime() ) true;
return rv;
},
- this.blinkDuringAsync = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.blinkDuringAsync = function( aSpeed, aDuration, aFXType ){
+ var perSec = aSpeed;
+ var count = parseInt( aDuration * perSec * 2);
+ var delay = parseFloat(1.0 / perSec);
+
+ if (aFXType == LFX_NONE) {
+ var rv = self.server.request( 'leds', 'blink' , { 'leds':aName,
'count':aCount, 'delay':_floatToString(delay) } );
+ if (rv.get("result") == "Success") rv = true;
+ else rv = false;
+ }
+ else{
+ var fxStep = 0;
+ if (aFXType == LFX_FADE)
+ fxStep = 10;
+ else if ( aFXType == LFX_STEP )
+ fxStep = 2;
+ var fxCType = LFXEX_GRADIENT_NBR;
+ var fxSpeed = _floatToString(parseFloat(delay / 3.0));
+ var rv = self.server.request( 'leds', 'pulse' , { 'count':aCount,
'fx_speed':fxSpeed, 'fx_step':fxStep, 'fx_type':fxCType, 'leds':aName,
'max_intensity':'1.0', 'min_intensity':'0.0', 'period':_floatToString(delay) }
);
+ if (rv.get("result") == "Success") rv = true;
+ else rv = false;
+ }
+ return rv;
},
- this.blinkAsync = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.blinkAsync = function( aSpeed, aCount, aFXType ){
+ aCount *= 2;
+ var delay = parseFloat(1.0 / parseFloat(aSpeed));
+
+ if (aFXType == LFX_NONE) {
+ var rv = self.server.request( 'leds', 'blink' , { 'leds':aName,
'count':aCount, 'delay':_floatToString(delay) } );
+ if (rv.get("result") == "Success") rv = true;
+ else rv = false;
+ }
+ else{
+ var fxStep = 0;
+ if (aFXType == LFX_FADE)
+ fxStep = 10;
+ else if ( aFXType == LFX_STEP )
+ fxStep = 2;
+ var fxCType = LFXEX_GRADIENT_NBR;
+ var fxSpeed = parseFloat(delay / 3.0);
+ var rv = self.server.request( 'leds', 'pulse' , { 'count':aCount,
'fx_speed':_floatToString(fxSpeed), 'fx_step':fxStep, 'fx_type':fxCType,
'leds':aName, 'max_intensity':'1.0', 'min_intensity':'0.0',
'period':_floatToString(delay) } );
+ if (rv.get("result") == "Success") rv = true;
+ else rv = false;
+ }
+ return rv;
},
- this.blink = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.blink = function( aSpeed, aCount, aFXType ){
+ if( aFXType == undefined ) aFXType = LFX_NONE;
+ var rv = this.blinkAsync( aSpeed, aCount, aFXType );
+ if( rv ){
+ var delay = 1.0 / aSpeed;
+ var timeout = delay * aCount * 1000;
+ var start = (new Date()).getTime();
+ while( start + timeout > (new Date()).getTime() ) true;
+ }
+ return rv;
},
this.getState = function(){
@@ -1435,6 +1517,8 @@
};
+
+
/*****************************************************************************
* Resource Flippers
* **************************************************************************/
@@ -1690,33 +1774,42 @@
var rv = self.status.requestOne( _name + '_state' );
if (rv.get("result") == "Success"){
rv = rv.get("data0").get("value");
- return rv;
+ if( rv == 'True' ) return true;
+ return false;
}
- return 'False';
+ return true;
},
- this.waitConnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.waitConnected = function( aTimeout ){
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ if( this.getConnected() ) return true;
+ return _eventHandlers.waitCondition( _name, true, aTimeout );
},
- this.waitDisconnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ this.waitDisconnected = function( aTimeout ){
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return false;
+ if( !this.getConnected() ) return true;
+ return _eventHandlers.waitCondition( _name, false, aTimeout );
},
this.registerEventOnConnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return;
+ _eventHandlers.register( _name, aFunction, 'True' );
},
this.registerEventOnDisconnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return;
+ _eventHandlers.register( _name, aFunction, 'False' );
},
this.unregisterEventOnConnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return;
+ _eventHandlers.unregister( _name, aFunction, 'True' );
},
this.unregisterEventOnDisconnected = function(){
- return TUXAPI_NOT_IMPLEMENTED;
+ if( self.server.getClientLevel() == CLIENT_LEVEL_ANONYME ) return;
+ _eventHandlers.unregister( _name, aFunction, 'False' );
}
};
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn