Workshop demo program

Dependencies:   PinDetect mbed LoRaWAN-lib SX1272Lib

Committer:
Brandond200
Date:
Wed May 03 16:51:28 2017 +0000
Revision:
19:31fc997c460b
Parent:
8:fb8b53c490e1
added a new timer to make sure the sending bool never gets stuck in the transmitting position. changed the uint8_t counting cycles for checkAlarm to a uint16_t

Who changed what in which revision?

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