@@ -54,7 +54,10 @@ private enum InterviewState { None, Started, Complete };
5454 private bool failed ;
5555 private InterviewState interviewed ;
5656
57- private ConcurrentDictionary < CommandClass , CommandClassBase > commandClasses = new ConcurrentDictionary < CommandClass , CommandClassBase > ( ) ;
57+ /// <summary>
58+ /// Command Class Instances
59+ /// </summary>
60+ protected ConcurrentDictionary < CommandClass , CommandClassBase > commandClasses = new ConcurrentDictionary < CommandClass , CommandClassBase > ( ) ;
5861 private List < EndPoint > endPoints = new List < EndPoint > ( ) ;
5962
6063 /// <summary>
@@ -130,7 +133,14 @@ internal Node(NodeJSON nodeJSON, Controller controller)
130133 nodeInfo = nodeJSON . NodeProtocolInfo ;
131134 }
132135
133- private bool AddCommandClass ( CommandClass cls , bool secure = false , byte version = 1 )
136+ /// <summary>
137+ /// Create a command class of the given type
138+ /// </summary>
139+ /// <param name="cls"></param>
140+ /// <param name="secure"></param>
141+ /// <param name="version"></param>
142+ /// <returns></returns>
143+ protected bool AddCommandClass ( CommandClass cls , bool secure = false , byte version = 1 )
134144 {
135145 return commandClasses . TryAdd ( cls , CommandClassBase . Create ( cls , this , 0 , secure , version ) ) ;
136146 }
@@ -197,7 +207,8 @@ internal void HandleApplicationUpdate(ApplicationUpdate update)
197207 internal async Task HandleApplicationCommand ( ApplicationCommand cmd )
198208 {
199209 ReportMessage ? msg = new ReportMessage ( cmd ) ;
200- RSSI = msg . RSSI ;
210+ if ( msg . RSSI != ApplicationCommand . INVALID_RSSI )
211+ RSSI = msg . RSSI ;
201212
202213 //Encapsulation Order (inner to outer) - MultiCommand, Supervision, Multichannel, security, transport, crc16
203214 if ( CRC16 . IsEncapsulated ( msg ) )
0 commit comments