|
From: <ma...@us...> - 2011-02-27 21:00:57
|
Revision: 309
http://openautomation.svn.sourceforge.net/openautomation/?rev=309&view=rev
Author: mayerch
Date: 2011-02-27 21:00:50 +0000 (Sun, 27 Feb 2011)
Log Message:
-----------
2 new transforms: DPT:10.001 and DPT:11.001 for KNX time and date
Note: only the decoding, the encoding is currently missing
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/transforms/transform_knx.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2011-02-27 17:39:50 UTC (rev 308)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2011-02-27 21:00:50 UTC (rev 309)
@@ -762,7 +762,20 @@
if( element.data( 'format' ) )
value = sprintf( element.data( 'format' ), value );
element.data( 'value', value );
- element.find('.value').text( map( value, element ) );
+ value = map( value, element );
+ if( value.constructor == Date )
+ {
+ switch( thisTransform ) // special case for KNX
+ {
+ case 'DPT:10.001':
+ value = value.toLocaleTimeString();
+ break;
+ case 'DPT:11.001':
+ value = value.toLocaleDateString();
+ break;
+ }
+ }
+ element.find('.value').text( value );
var styling = element.data('styling');
if( styling && stylings[styling] && (stylings[styling][value] || stylings[styling]['range']) )
Modified: CometVisu/trunk/visu/transforms/transform_knx.js
===================================================================
--- CometVisu/trunk/visu/transforms/transform_knx.js 2011-02-27 17:39:50 UTC (rev 308)
+++ CometVisu/trunk/visu/transforms/transform_knx.js 2011-02-27 21:00:50 UTC (rev 309)
@@ -174,6 +174,41 @@
link : '9.001'
},
+ '10.001' : {
+ name : 'DPT_TimeOfDay',
+ encode: function( phy ){
+ // FIXME
+ },
+ decode: function( hex ){
+ var date = new Date(); // assume today
+ date.setHours ( parseInt(hex.substr(0,2),16) & 0x1F );
+ date.setMinutes( parseInt(hex.substr(2,2),16) );
+ date.setSeconds( parseInt(hex.substr(4,2),16) );
+ // as KNX thinks the day of the week belongs to the time, but JavaScript
+ // doesn't, tweak the date till it fits...
+ var day = (parseInt(hex.substr(0,2),16) & 0xE0) >> 5;
+ if( day > 0 )
+ {
+ var dayShift = (day - date.getDay()) % 7;
+ date.setDate( date.getDate() + dayShift );
+ }
+ return date;
+ }
+ },
+
+ '11.001' : {
+ name : 'DPT_Date',
+ encode: function( phy ){
+ // FIXME
+ },
+ decode: function( hex ){
+ var year = parseInt(hex.substr(4,2),16) & 0x7F;
+ return new Date(year < 90 ? year+2000 : year+1900, //1990 - 2089
+ (parseInt(hex.substr(2,2),16) & 0x0F) - 1,
+ parseInt(hex.substr(0,2),16) & 0x1F);
+ }
+ },
+
'12.001' : {
name : 'DPT_Value_4_Ucount',
encode: function( phy ){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|