Sending IKS01A1 temperature sensor to LoRaWAN port-5 uplink

Dependencies:   X_NUCLEO_IKS01A1 mbed LoRaWAN-lib SX1276Lib

Fork of LoRaWAN-demo-76 by Semtech

Use IKS01A1 sensor shield with SX1272 shield or SX1276 shield.

Sends temperature sensor to LoRaWAN uplink port 5.


Remove SB22 and SB23 from IKS01A1 before using

SB28 conflicts with DIO0 on radio. (TxDone RxDone)

SB22 conflicts with RxTx on radio. (antenna switch)

Committer:
mluis
Date:
Thu Nov 26 12:59:52 2015 +0000
Revision:
1:352f608c3337
Parent:
0:92bca02df485
Child:
3:9c6f7f082151
Changed application architecture to mimic GitHub LoRaMac-node repository.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mluis 0:92bca02df485 1 /*
mluis 0:92bca02df485 2 / _____) _ | |
mluis 0:92bca02df485 3 ( (____ _____ ____ _| |_ _____ ____| |__
mluis 0:92bca02df485 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
mluis 0:92bca02df485 5 _____) ) ____| | | || |_| ____( (___| | | |
mluis 0:92bca02df485 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
mluis 0:92bca02df485 7 (C)2015 Semtech
mluis 0:92bca02df485 8
mluis 0:92bca02df485 9 Description: VT100 serial display management
mluis 0:92bca02df485 10
mluis 0:92bca02df485 11 License: Revised BSD License, see LICENSE.TXT file include in the project
mluis 0:92bca02df485 12
mluis 0:92bca02df485 13 Maintainer: Miguel Luis and Gregory Cristian
mluis 0:92bca02df485 14 */
mluis 0:92bca02df485 15 #include "board.h"
mluis 0:92bca02df485 16 #include "vt100.h"
mluis 0:92bca02df485 17 #include "SerialDisplay.h"
mluis 0:92bca02df485 18
mluis 0:92bca02df485 19 VT100 vt( USBTX, USBRX );
mluis 0:92bca02df485 20
mluis 0:92bca02df485 21 void SerialPrintCheckBox( bool activated, uint8_t color )
mluis 0:92bca02df485 22 {
mluis 0:92bca02df485 23 if( activated == true )
mluis 0:92bca02df485 24 {
mluis 0:92bca02df485 25 vt.SetAttribute( VT100::ATTR_OFF, color, color );
mluis 0:92bca02df485 26 }
mluis 0:92bca02df485 27 else
mluis 0:92bca02df485 28 {
mluis 0:92bca02df485 29 vt.SetAttribute( VT100::ATTR_OFF );
mluis 0:92bca02df485 30 }
mluis 0:92bca02df485 31 vt.printf( " " );
mluis 0:92bca02df485 32 vt.SetAttribute( VT100::ATTR_OFF );
mluis 0:92bca02df485 33 }
mluis 0:92bca02df485 34
mluis 0:92bca02df485 35 void SerialDisplayUpdateActivationMode( bool otaa )
mluis 0:92bca02df485 36 {
mluis 0:92bca02df485 37 vt.SetCursorPos( 4, 17 );
mluis 0:92bca02df485 38 SerialPrintCheckBox( otaa, VT100::WHITE );
mluis 0:92bca02df485 39 vt.SetCursorPos( 9, 17 );
mluis 0:92bca02df485 40 SerialPrintCheckBox( !otaa, VT100::WHITE );
mluis 0:92bca02df485 41 }
mluis 0:92bca02df485 42
mluis 0:92bca02df485 43 void SerialDisplayUpdateEui( uint8_t line, uint8_t *eui )
mluis 0:92bca02df485 44 { //
mluis 0:92bca02df485 45 // REMARK
mluis 0:92bca02df485 46 //
mluis 0:92bca02df485 47 // EUIs must be displayed in reverse order
mluis 0:92bca02df485 48 //
mluis 0:92bca02df485 49 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 50 for( uint8_t i = 0; i < 8; i++ )
mluis 0:92bca02df485 51 {
mluis 0:92bca02df485 52 vt.printf( "%02X ", eui[7 - i] );
mluis 0:92bca02df485 53 }
mluis 0:92bca02df485 54 vt.SetCursorPos( line, 50 );
mluis 0:92bca02df485 55 vt.printf( "]" );
mluis 0:92bca02df485 56 }
mluis 0:92bca02df485 57
mluis 0:92bca02df485 58 void SerialDisplayUpdateKey( uint8_t line, uint8_t *key )
mluis 0:92bca02df485 59 {
mluis 0:92bca02df485 60 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 61 for( uint8_t i = 0; i < 16; i++ )
mluis 0:92bca02df485 62 {
mluis 0:92bca02df485 63 vt.printf( "%02X ", key[i] );
mluis 0:92bca02df485 64 }
mluis 0:92bca02df485 65 vt.SetCursorPos( line, 74 );
mluis 0:92bca02df485 66 vt.printf( "]" );
mluis 0:92bca02df485 67 }
mluis 0:92bca02df485 68
mluis 0:92bca02df485 69 void SerialDisplayUpdateNwkId( uint8_t id )
mluis 0:92bca02df485 70 {
mluis 0:92bca02df485 71 vt.SetCursorPos( 10, 27 );
mluis 0:92bca02df485 72 vt.printf( "%03d", id );
mluis 0:92bca02df485 73 }
mluis 0:92bca02df485 74
mluis 0:92bca02df485 75 void SerialDisplayUpdateDevAddr( uint32_t addr )
mluis 0:92bca02df485 76 {
mluis 0:92bca02df485 77 vt.SetCursorPos( 11, 27 );
mluis 0:92bca02df485 78 vt.printf( "%02X %02X %02X %02X", ( addr >> 24 ) & 0xFF, ( addr >> 16 ) & 0xFF, ( addr >> 8 ) & 0xFF, addr & 0xFF );
mluis 0:92bca02df485 79 }
mluis 0:92bca02df485 80
mluis 0:92bca02df485 81 void SerialDisplayUpdateFrameType( bool confirmed )
mluis 0:92bca02df485 82 {
mluis 0:92bca02df485 83 vt.SetCursorPos( 15, 17 );
mluis 0:92bca02df485 84 SerialPrintCheckBox( confirmed, VT100::WHITE );
mluis 0:92bca02df485 85 vt.SetCursorPos( 15, 32 );
mluis 0:92bca02df485 86 SerialPrintCheckBox( !confirmed, VT100::WHITE );
mluis 0:92bca02df485 87 }
mluis 0:92bca02df485 88
mluis 0:92bca02df485 89 void SerialDisplayUpdateAdr( bool adr )
mluis 0:92bca02df485 90 {
mluis 0:92bca02df485 91 vt.SetCursorPos( 16, 27 );
mluis 0:92bca02df485 92 if( adr == true )
mluis 0:92bca02df485 93 {
mluis 0:92bca02df485 94 vt.printf( " ON" );
mluis 0:92bca02df485 95 }
mluis 0:92bca02df485 96 else
mluis 0:92bca02df485 97 {
mluis 0:92bca02df485 98 vt.printf( "OFF" );
mluis 0:92bca02df485 99 }
mluis 0:92bca02df485 100 }
mluis 0:92bca02df485 101
mluis 0:92bca02df485 102 void SerialDisplayUpdateDutyCycle( bool dutyCycle )
mluis 0:92bca02df485 103 {
mluis 0:92bca02df485 104 vt.SetCursorPos( 17, 27 );
mluis 0:92bca02df485 105 if( dutyCycle == true )
mluis 0:92bca02df485 106 {
mluis 0:92bca02df485 107 vt.printf( " ON" );
mluis 0:92bca02df485 108 }
mluis 0:92bca02df485 109 else
mluis 0:92bca02df485 110 {
mluis 0:92bca02df485 111 vt.printf( "OFF" );
mluis 0:92bca02df485 112 }
mluis 0:92bca02df485 113 }
mluis 0:92bca02df485 114
mluis 0:92bca02df485 115 void SerialDisplayUpdatePublicNetwork( bool network )
mluis 0:92bca02df485 116 {
mluis 0:92bca02df485 117 vt.SetCursorPos( 19, 17 );
mluis 0:92bca02df485 118 SerialPrintCheckBox( network, VT100::WHITE );
mluis 0:92bca02df485 119 vt.SetCursorPos( 19, 30 );
mluis 0:92bca02df485 120 SerialPrintCheckBox( !network, VT100::WHITE );
mluis 0:92bca02df485 121 }
mluis 0:92bca02df485 122
mluis 0:92bca02df485 123 void SerialDisplayUpdateNetworkIsJoined( bool state )
mluis 0:92bca02df485 124 {
mluis 0:92bca02df485 125 vt.SetCursorPos( 20, 17 );
mluis 0:92bca02df485 126 SerialPrintCheckBox( !state, VT100::RED );
mluis 0:92bca02df485 127 vt.SetCursorPos( 20, 30 );
mluis 0:92bca02df485 128 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:92bca02df485 129 }
mluis 0:92bca02df485 130
mluis 0:92bca02df485 131 void SerialDisplayUpdateLedState( uint8_t id, uint8_t state )
mluis 0:92bca02df485 132 {
mluis 0:92bca02df485 133 switch( id )
mluis 0:92bca02df485 134 {
mluis 0:92bca02df485 135 case 1:
mluis 0:92bca02df485 136 vt.SetCursorPos( 22, 17 );
mluis 0:92bca02df485 137 SerialPrintCheckBox( state, VT100::RED );
mluis 0:92bca02df485 138 break;
mluis 0:92bca02df485 139 case 2:
mluis 0:92bca02df485 140 vt.SetCursorPos( 22, 31 );
mluis 0:92bca02df485 141 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:92bca02df485 142 break;
mluis 0:92bca02df485 143 case 3:
mluis 0:92bca02df485 144 vt.SetCursorPos( 22, 45 );
mluis 0:92bca02df485 145 SerialPrintCheckBox( state, VT100::BLUE );
mluis 0:92bca02df485 146 break;
mluis 0:92bca02df485 147 }
mluis 0:92bca02df485 148 }
mluis 0:92bca02df485 149
mluis 0:92bca02df485 150 void SerialDisplayUpdateData( uint8_t line, uint8_t *buffer, uint8_t size )
mluis 0:92bca02df485 151 {
mluis 0:92bca02df485 152 if( size != 0 )
mluis 0:92bca02df485 153 {
mluis 0:92bca02df485 154 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 155 for( uint8_t i = 0; i < size; i++ )
mluis 0:92bca02df485 156 {
mluis 0:92bca02df485 157 vt.printf( "%02X ", buffer[i] );
mluis 0:92bca02df485 158 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:92bca02df485 159 {
mluis 0:92bca02df485 160 line++;
mluis 0:92bca02df485 161 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 162 }
mluis 0:92bca02df485 163 }
mluis 0:92bca02df485 164 for( uint8_t i = size; i < 64; i++ )
mluis 0:92bca02df485 165 {
mluis 0:92bca02df485 166 vt.printf( "__ " );
mluis 0:92bca02df485 167 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:92bca02df485 168 {
mluis 0:92bca02df485 169 line++;
mluis 0:92bca02df485 170 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 171 }
mluis 0:92bca02df485 172 }
mluis 0:92bca02df485 173 vt.SetCursorPos( line - 1, 74 );
mluis 0:92bca02df485 174 vt.printf( "]" );
mluis 0:92bca02df485 175 }
mluis 0:92bca02df485 176 else
mluis 0:92bca02df485 177 {
mluis 0:92bca02df485 178 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 179 for( uint8_t i = 0; i < 64; i++ )
mluis 0:92bca02df485 180 {
mluis 0:92bca02df485 181 vt.printf( "__ " );
mluis 0:92bca02df485 182 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:92bca02df485 183 {
mluis 0:92bca02df485 184 line++;
mluis 0:92bca02df485 185 vt.SetCursorPos( line, 27 );
mluis 0:92bca02df485 186 }
mluis 0:92bca02df485 187 }
mluis 0:92bca02df485 188 vt.SetCursorPos( line - 1, 74 );
mluis 0:92bca02df485 189 vt.printf( "]" );
mluis 0:92bca02df485 190 }
mluis 0:92bca02df485 191 }
mluis 0:92bca02df485 192
mluis 0:92bca02df485 193 void SerialDisplayUpdateUplinkAcked( bool state )
mluis 0:92bca02df485 194 {
mluis 0:92bca02df485 195 vt.SetCursorPos( 24, 36 );
mluis 0:92bca02df485 196 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:92bca02df485 197 }
mluis 0:92bca02df485 198
mluis 0:92bca02df485 199 void SerialDisplayUpdateUplink( bool acked, uint8_t datarate, uint16_t counter, uint8_t port, uint8_t *buffer, uint8_t bufferSize )
mluis 0:92bca02df485 200 {
mluis 0:92bca02df485 201 // Acked
mluis 0:92bca02df485 202 SerialDisplayUpdateUplinkAcked( acked );
mluis 0:92bca02df485 203 // Datarate
mluis 0:92bca02df485 204 vt.SetCursorPos( 25, 33 );
mluis 0:92bca02df485 205 vt.printf( "DR%d", datarate );
mluis 0:92bca02df485 206 // Counter
mluis 0:92bca02df485 207 vt.SetCursorPos( 26, 27 );
mluis 0:92bca02df485 208 vt.printf( "%10d", counter );
mluis 0:92bca02df485 209 // Port
mluis 0:92bca02df485 210 vt.SetCursorPos( 27, 34 );
mluis 0:92bca02df485 211 vt.printf( "%3d", port );
mluis 0:92bca02df485 212 // Data
mluis 0:92bca02df485 213 SerialDisplayUpdateData( 28, buffer, bufferSize );
mluis 0:92bca02df485 214 // Help message
mluis 0:92bca02df485 215 vt.SetCursorPos( 42, 1 );
mluis 0:92bca02df485 216 vt.printf( "To refresh screen please hit 'r' key.\r\n" );
mluis 0:92bca02df485 217 }
mluis 0:92bca02df485 218
mluis 0:92bca02df485 219 void SerialDisplayUpdateDonwlinkRxData( bool state )
mluis 0:92bca02df485 220 {
mluis 0:92bca02df485 221 vt.SetCursorPos( 34, 4 );
mluis 0:92bca02df485 222 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:92bca02df485 223 }
mluis 0:92bca02df485 224
mluis 0:92bca02df485 225 void SerialDisplayUpdateDownlink( bool rxData, int16_t rssi, int8_t snr, uint16_t counter, uint8_t port, uint8_t *buffer, uint8_t bufferSize )
mluis 0:92bca02df485 226 {
mluis 0:92bca02df485 227 // Rx data
mluis 0:92bca02df485 228 SerialDisplayUpdateDonwlinkRxData( rxData );
mluis 0:92bca02df485 229 // RSSI
mluis 0:92bca02df485 230 vt.SetCursorPos( 33, 32 );
mluis 0:92bca02df485 231 vt.printf( "%5d", rssi );
mluis 0:92bca02df485 232 // SNR
mluis 0:92bca02df485 233 vt.SetCursorPos( 34, 32 );
mluis 0:92bca02df485 234 vt.printf( "%5d", snr );
mluis 0:92bca02df485 235 // Counter
mluis 0:92bca02df485 236 vt.SetCursorPos( 35, 27 );
mluis 0:92bca02df485 237 vt.printf( "%10d", counter );
mluis 0:92bca02df485 238 if( rxData == true )
mluis 0:92bca02df485 239 {
mluis 0:92bca02df485 240 // Port
mluis 0:92bca02df485 241 vt.SetCursorPos( 36, 34 );
mluis 0:92bca02df485 242 vt.printf( "%3d", port );
mluis 0:92bca02df485 243 // Data
mluis 0:92bca02df485 244 SerialDisplayUpdateData( 37, buffer, bufferSize );
mluis 0:92bca02df485 245 }
mluis 0:92bca02df485 246 else
mluis 0:92bca02df485 247 {
mluis 0:92bca02df485 248 // Port
mluis 0:92bca02df485 249 vt.SetCursorPos( 36, 34 );
mluis 0:92bca02df485 250 vt.printf( " " );
mluis 0:92bca02df485 251 // Data
mluis 0:92bca02df485 252 SerialDisplayUpdateData( 37, NULL, 0 );
mluis 0:92bca02df485 253 }
mluis 0:92bca02df485 254 }
mluis 0:92bca02df485 255
mluis 0:92bca02df485 256 void SerialDisplayDrawFirstLine( void )
mluis 0:92bca02df485 257 {
mluis 0:92bca02df485 258 vt.PutBoxDrawingChar( 'l' );
mluis 0:92bca02df485 259 for( int8_t i = 0; i <= 77; i++ )
mluis 0:92bca02df485 260 {
mluis 0:92bca02df485 261 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 262 }
mluis 0:92bca02df485 263 vt.PutBoxDrawingChar( 'k' );
mluis 0:92bca02df485 264 vt.printf( "\r\n" );
mluis 0:92bca02df485 265 }
mluis 0:92bca02df485 266
mluis 0:92bca02df485 267 void SerialDisplayDrawTitle( const char* title )
mluis 0:92bca02df485 268 {
mluis 0:92bca02df485 269 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 270 vt.printf( "%s", title );
mluis 0:92bca02df485 271 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 272 vt.printf( "\r\n" );
mluis 0:92bca02df485 273 }
mluis 0:92bca02df485 274 void SerialDisplayDrawTopSeparator( void )
mluis 0:92bca02df485 275 {
mluis 0:92bca02df485 276 vt.PutBoxDrawingChar( 't' );
mluis 0:92bca02df485 277 for( int8_t i = 0; i <= 11; i++ )
mluis 0:92bca02df485 278 {
mluis 0:92bca02df485 279 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 280 }
mluis 0:92bca02df485 281 vt.PutBoxDrawingChar( 'w' );
mluis 0:92bca02df485 282 for( int8_t i = 0; i <= 64; i++ )
mluis 0:92bca02df485 283 {
mluis 0:92bca02df485 284 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 285 }
mluis 0:92bca02df485 286 vt.PutBoxDrawingChar( 'u' );
mluis 0:92bca02df485 287 vt.printf( "\r\n" );
mluis 0:92bca02df485 288 }
mluis 0:92bca02df485 289
mluis 0:92bca02df485 290 void SerialDisplayDrawColSeparator( void )
mluis 0:92bca02df485 291 {
mluis 0:92bca02df485 292 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 293 for( int8_t i = 0; i <= 11; i++ )
mluis 0:92bca02df485 294 {
mluis 0:92bca02df485 295 vt.PutBoxDrawingChar( ' ' );
mluis 0:92bca02df485 296 }
mluis 0:92bca02df485 297 vt.PutBoxDrawingChar( 't' );
mluis 0:92bca02df485 298 for( int8_t i = 0; i <= 64; i++ )
mluis 0:92bca02df485 299 {
mluis 0:92bca02df485 300 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 301 }
mluis 0:92bca02df485 302 vt.PutBoxDrawingChar( 'u' );
mluis 0:92bca02df485 303 vt.printf( "\r\n" );
mluis 0:92bca02df485 304 }
mluis 0:92bca02df485 305
mluis 0:92bca02df485 306 void SerialDisplayDrawSeparator( void )
mluis 0:92bca02df485 307 {
mluis 0:92bca02df485 308 vt.PutBoxDrawingChar( 't' );
mluis 0:92bca02df485 309 for( int8_t i = 0; i <= 11; i++ )
mluis 0:92bca02df485 310 {
mluis 0:92bca02df485 311 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 312 }
mluis 0:92bca02df485 313 vt.PutBoxDrawingChar( 'n' );
mluis 0:92bca02df485 314 for( int8_t i = 0; i <= 64; i++ )
mluis 0:92bca02df485 315 {
mluis 0:92bca02df485 316 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 317 }
mluis 0:92bca02df485 318 vt.PutBoxDrawingChar( 'u' );
mluis 0:92bca02df485 319 vt.printf( "\r\n" );
mluis 0:92bca02df485 320 }
mluis 0:92bca02df485 321
mluis 0:92bca02df485 322 void SerialDisplayDrawLine( const char* firstCol, const char* secondCol )
mluis 0:92bca02df485 323 {
mluis 0:92bca02df485 324 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 325 vt.printf( "%s", firstCol );
mluis 0:92bca02df485 326 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 327 vt.printf( "%s", secondCol );
mluis 0:92bca02df485 328 vt.PutBoxDrawingChar( 'x' );
mluis 0:92bca02df485 329 vt.printf( "\r\n" );
mluis 0:92bca02df485 330 }
mluis 0:92bca02df485 331
mluis 0:92bca02df485 332 void SerialDisplayDrawBottomLine( void )
mluis 0:92bca02df485 333 {
mluis 0:92bca02df485 334 vt.PutBoxDrawingChar( 'm' );
mluis 0:92bca02df485 335 for( int8_t i = 0; i <= 11; i++ )
mluis 0:92bca02df485 336 {
mluis 0:92bca02df485 337 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 338 }
mluis 0:92bca02df485 339 vt.PutBoxDrawingChar( 'v' );
mluis 0:92bca02df485 340 for( int8_t i = 0; i <= 64; i++ )
mluis 0:92bca02df485 341 {
mluis 0:92bca02df485 342 vt.PutBoxDrawingChar( 'q' );
mluis 0:92bca02df485 343 }
mluis 0:92bca02df485 344 vt.PutBoxDrawingChar( 'j' );
mluis 0:92bca02df485 345 vt.printf( "\r\n" );
mluis 0:92bca02df485 346 }
mluis 0:92bca02df485 347
mluis 0:92bca02df485 348 void SerialDisplayInit( void )
mluis 0:92bca02df485 349 {
mluis 0:92bca02df485 350 vt.ClearScreen( 2 );
mluis 0:92bca02df485 351 vt.SetCursorMode( false );
mluis 0:92bca02df485 352 vt.SetCursorPos( 0, 0 );
mluis 0:92bca02df485 353
mluis 0:92bca02df485 354 // "+-----------------------------------------------------------------------------+" );
mluis 0:92bca02df485 355 SerialDisplayDrawFirstLine( );
mluis 0:92bca02df485 356 // "¦ LoRaWAN Demonstration Application ¦" );
mluis 0:92bca02df485 357 SerialDisplayDrawTitle( " LoRaWAN Demonstration Application " );
mluis 0:92bca02df485 358 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 359 SerialDisplayDrawTopSeparator( );
mluis 0:92bca02df485 360 // "¦ Activation ¦ [ ]Over The Air ¦" );
mluis 0:92bca02df485 361 SerialDisplayDrawLine( " Activation ", " [ ]Over The Air " );
mluis 0:92bca02df485 362 // "¦ ¦ DevEui [__ __ __ __ __ __ __ __] ¦" );
mluis 0:92bca02df485 363 SerialDisplayDrawLine( " ", " DevEui [__ __ __ __ __ __ __ __] " );
mluis 0:92bca02df485 364 // "¦ ¦ AppEui [__ __ __ __ __ __ __ __] ¦" );
mluis 0:92bca02df485 365 SerialDisplayDrawLine( " ", " AppEui [__ __ __ __ __ __ __ __] " );
mluis 0:92bca02df485 366 // "¦ ¦ AppKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:92bca02df485 367 SerialDisplayDrawLine( " ", " AppKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:92bca02df485 368 // "¦ +----------------------------------------------------------------¦" );
mluis 0:92bca02df485 369 SerialDisplayDrawColSeparator( );
mluis 0:92bca02df485 370 // "¦ ¦ [x]Personalisation ¦" );
mluis 0:92bca02df485 371 SerialDisplayDrawLine( " ", " [ ]Personalisation " );
mluis 0:92bca02df485 372 // "¦ ¦ NwkId [___] ¦" );
mluis 0:92bca02df485 373 SerialDisplayDrawLine( " ", " NwkId [___] " );
mluis 0:92bca02df485 374 // "¦ ¦ DevAddr [__ __ __ __] ¦" );
mluis 0:92bca02df485 375 SerialDisplayDrawLine( " ", " DevAddr [__ __ __ __] " );
mluis 0:92bca02df485 376 // "¦ ¦ NwkSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:92bca02df485 377 SerialDisplayDrawLine( " ", " NwkSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:92bca02df485 378 // "¦ ¦ AppSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:92bca02df485 379 SerialDisplayDrawLine( " ", " AppSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:92bca02df485 380 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 381 SerialDisplayDrawSeparator( );
mluis 0:92bca02df485 382 // "¦ MAC params ¦ [ ]Confirmed / [ ]Unconfirmed ¦" );
mluis 0:92bca02df485 383 SerialDisplayDrawLine( " MAC params ", " [ ]Confirmed / [ ]Unconfirmed " );
mluis 0:92bca02df485 384 // "¦ ¦ ADR [ ] ¦" );
mluis 0:92bca02df485 385 SerialDisplayDrawLine( " ", " ADR [ ] " );
mluis 0:92bca02df485 386 // "¦ ¦ Duty cycle[ ] ¦" );
mluis 0:92bca02df485 387 SerialDisplayDrawLine( " ", " Duty cycle[ ] " );
mluis 0:92bca02df485 388 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 389 SerialDisplayDrawSeparator( );
mluis 0:92bca02df485 390 // "¦ Network ¦ [ ]Public / [ ]Private ¦" );
mluis 0:92bca02df485 391 SerialDisplayDrawLine( " Network ", " [ ]Public / [ ]Private " );
mluis 0:92bca02df485 392 // "¦ ¦ [ ]Joining / [ ]Joined ¦" );
mluis 0:92bca02df485 393 SerialDisplayDrawLine( " ", " [ ]Joining / [ ]Joined " );
mluis 0:92bca02df485 394 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 395 SerialDisplayDrawSeparator( );
mluis 0:92bca02df485 396 // "¦ LED status ¦ [ ]LED1(Tx) / [ ]LED2(Rx) / [ ]LED3(App) ¦" );
mluis 0:92bca02df485 397 SerialDisplayDrawLine( " LED status ", " [ ]LED1(Tx) / [ ]LED2(Rx) / [ ]LED3(App) " );
mluis 0:92bca02df485 398 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 399 SerialDisplayDrawSeparator( );
mluis 0:92bca02df485 400 // "¦ Uplink ¦ Acked [ ] ¦" );
mluis 0:92bca02df485 401 SerialDisplayDrawLine( " Uplink ", " Acked [ ] " );
mluis 0:92bca02df485 402 // "¦ ¦ Datarate [ ] ¦" );
mluis 0:92bca02df485 403 SerialDisplayDrawLine( " ", " Datarate [ ] " );
mluis 0:92bca02df485 404 // "¦ ¦ Counter [ ] ¦" );
mluis 0:92bca02df485 405 SerialDisplayDrawLine( " ", " Counter [ ] " );
mluis 0:92bca02df485 406 // "¦ ¦ Port [ ] ¦" );
mluis 0:92bca02df485 407 SerialDisplayDrawLine( " ", " Port [ ] " );
mluis 0:92bca02df485 408 // "¦ ¦ Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 409 SerialDisplayDrawLine( " ", " Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 410 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 411 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 412 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 413 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 414 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 415 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 416 // "+------------+----------------------------------------------------------------¦" );
mluis 0:92bca02df485 417 SerialDisplayDrawSeparator( );
mluis 0:92bca02df485 418 // "¦ Downlink ¦ RSSI [ ] dBm ¦" );
mluis 0:92bca02df485 419 SerialDisplayDrawLine( " Downlink ", " RSSI [ ] dBm " );
mluis 0:92bca02df485 420 // "¦ [ ]Data ¦ SNR [ ] dB ¦" );
mluis 0:92bca02df485 421 SerialDisplayDrawLine( " [ ]Data ", " SNR [ ] dB " );
mluis 0:92bca02df485 422 // "¦ ¦ Counter [ ] ¦" );
mluis 0:92bca02df485 423 // "¦ ¦ Counter [ ] ¦" );
mluis 0:92bca02df485 424 SerialDisplayDrawLine( " ", " Counter [ ] " );
mluis 0:92bca02df485 425 // "¦ ¦ Port [ ] ¦" );
mluis 0:92bca02df485 426 SerialDisplayDrawLine( " ", " Port [ ] " );
mluis 0:92bca02df485 427 // "¦ ¦ Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 428 SerialDisplayDrawLine( " ", " Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 429 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 430 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 431 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 432 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 433 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:92bca02df485 434 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:92bca02df485 435 // "+------------+----------------------------------------------------------------+" );
mluis 0:92bca02df485 436 SerialDisplayDrawBottomLine( );
mluis 0:92bca02df485 437 vt.printf( "To refresh screen please hit 'r' key.\r\n" );
mluis 0:92bca02df485 438 }
mluis 0:92bca02df485 439
mluis 0:92bca02df485 440 bool SerialDisplayReadable( void )
mluis 0:92bca02df485 441 {
mluis 0:92bca02df485 442 return vt.Readable( );
mluis 0:92bca02df485 443 }
mluis 0:92bca02df485 444
mluis 0:92bca02df485 445 uint8_t SerialDisplayGetChar( void )
mluis 0:92bca02df485 446 {
mluis 0:92bca02df485 447 return vt.GetChar( );
mluis 0:92bca02df485 448 }