V03 config RTC+envoie 1 donnée/seconde

Dependencies:   mbed LoRaWAN-lib SX1272Lib

Committer:
MGstic
Date:
Wed Jan 23 16:28:51 2019 +0000
Revision:
10:1a85ff06be1a
Parent:
0:45496a70a8a5
V03

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
mluis 0:45496a70a8a5 21 void SerialPrintCheckBox( bool activated, uint8_t color )
mluis 0:45496a70a8a5 22 {
mluis 0:45496a70a8a5 23 if( activated == true )
mluis 0:45496a70a8a5 24 {
mluis 0:45496a70a8a5 25 vt.SetAttribute( VT100::ATTR_OFF, color, color );
mluis 0:45496a70a8a5 26 }
mluis 0:45496a70a8a5 27 else
mluis 0:45496a70a8a5 28 {
mluis 0:45496a70a8a5 29 vt.SetAttribute( VT100::ATTR_OFF );
mluis 0:45496a70a8a5 30 }
mluis 0:45496a70a8a5 31 vt.printf( " " );
mluis 0:45496a70a8a5 32 vt.SetAttribute( VT100::ATTR_OFF );
mluis 0:45496a70a8a5 33 }
mluis 0:45496a70a8a5 34
mluis 0:45496a70a8a5 35 void SerialDisplayUpdateActivationMode( bool otaa )
mluis 0:45496a70a8a5 36 {
mluis 0:45496a70a8a5 37 vt.SetCursorPos( 4, 17 );
mluis 0:45496a70a8a5 38 SerialPrintCheckBox( otaa, VT100::WHITE );
mluis 0:45496a70a8a5 39 vt.SetCursorPos( 9, 17 );
mluis 0:45496a70a8a5 40 SerialPrintCheckBox( !otaa, VT100::WHITE );
mluis 0:45496a70a8a5 41 }
mluis 0:45496a70a8a5 42
mluis 0:45496a70a8a5 43 void SerialDisplayUpdateEui( uint8_t line, uint8_t *eui )
mluis 0:45496a70a8a5 44 {
mluis 0:45496a70a8a5 45 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 46 for( uint8_t i = 0; i < 8; i++ )
mluis 0:45496a70a8a5 47 {
mluis 0:45496a70a8a5 48 vt.printf( "%02X ", eui[i] );
mluis 0:45496a70a8a5 49 }
mluis 0:45496a70a8a5 50 vt.SetCursorPos( line, 50 );
mluis 0:45496a70a8a5 51 vt.printf( "]" );
mluis 0:45496a70a8a5 52 }
mluis 0:45496a70a8a5 53
mluis 0:45496a70a8a5 54 void SerialDisplayUpdateKey( uint8_t line, uint8_t *key )
mluis 0:45496a70a8a5 55 {
mluis 0:45496a70a8a5 56 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 57 for( uint8_t i = 0; i < 16; i++ )
mluis 0:45496a70a8a5 58 {
mluis 0:45496a70a8a5 59 vt.printf( "%02X ", key[i] );
mluis 0:45496a70a8a5 60 }
mluis 0:45496a70a8a5 61 vt.SetCursorPos( line, 74 );
mluis 0:45496a70a8a5 62 vt.printf( "]" );
mluis 0:45496a70a8a5 63 }
mluis 0:45496a70a8a5 64
mluis 0:45496a70a8a5 65 void SerialDisplayUpdateNwkId( uint8_t id )
mluis 0:45496a70a8a5 66 {
mluis 0:45496a70a8a5 67 vt.SetCursorPos( 10, 27 );
mluis 0:45496a70a8a5 68 vt.printf( "%03d", id );
mluis 0:45496a70a8a5 69 }
mluis 0:45496a70a8a5 70
mluis 0:45496a70a8a5 71 void SerialDisplayUpdateDevAddr( uint32_t addr )
mluis 0:45496a70a8a5 72 {
mluis 0:45496a70a8a5 73 vt.SetCursorPos( 11, 27 );
mluis 0:45496a70a8a5 74 vt.printf( "%02X %02X %02X %02X", ( addr >> 24 ) & 0xFF, ( addr >> 16 ) & 0xFF, ( addr >> 8 ) & 0xFF, addr & 0xFF );
mluis 0:45496a70a8a5 75 }
mluis 0:45496a70a8a5 76
mluis 0:45496a70a8a5 77 void SerialDisplayUpdateFrameType( bool confirmed )
mluis 0:45496a70a8a5 78 {
mluis 0:45496a70a8a5 79 vt.SetCursorPos( 15, 17 );
mluis 0:45496a70a8a5 80 SerialPrintCheckBox( confirmed, VT100::WHITE );
mluis 0:45496a70a8a5 81 vt.SetCursorPos( 15, 32 );
mluis 0:45496a70a8a5 82 SerialPrintCheckBox( !confirmed, VT100::WHITE );
mluis 0:45496a70a8a5 83 }
mluis 0:45496a70a8a5 84
mluis 0:45496a70a8a5 85 void SerialDisplayUpdateAdr( bool adr )
mluis 0:45496a70a8a5 86 {
mluis 0:45496a70a8a5 87 vt.SetCursorPos( 16, 27 );
mluis 0:45496a70a8a5 88 if( adr == true )
mluis 0:45496a70a8a5 89 {
mluis 0:45496a70a8a5 90 vt.printf( " ON" );
mluis 0:45496a70a8a5 91 }
mluis 0:45496a70a8a5 92 else
mluis 0:45496a70a8a5 93 {
mluis 0:45496a70a8a5 94 vt.printf( "OFF" );
mluis 0:45496a70a8a5 95 }
mluis 0:45496a70a8a5 96 }
mluis 0:45496a70a8a5 97
mluis 0:45496a70a8a5 98 void SerialDisplayUpdateDutyCycle( bool dutyCycle )
mluis 0:45496a70a8a5 99 {
mluis 0:45496a70a8a5 100 vt.SetCursorPos( 17, 27 );
mluis 0:45496a70a8a5 101 if( dutyCycle == true )
mluis 0:45496a70a8a5 102 {
mluis 0:45496a70a8a5 103 vt.printf( " ON" );
mluis 0:45496a70a8a5 104 }
mluis 0:45496a70a8a5 105 else
mluis 0:45496a70a8a5 106 {
mluis 0:45496a70a8a5 107 vt.printf( "OFF" );
mluis 0:45496a70a8a5 108 }
mluis 0:45496a70a8a5 109 }
mluis 0:45496a70a8a5 110
mluis 0:45496a70a8a5 111 void SerialDisplayUpdatePublicNetwork( bool network )
mluis 0:45496a70a8a5 112 {
mluis 0:45496a70a8a5 113 vt.SetCursorPos( 19, 17 );
mluis 0:45496a70a8a5 114 SerialPrintCheckBox( network, VT100::WHITE );
mluis 0:45496a70a8a5 115 vt.SetCursorPos( 19, 30 );
mluis 0:45496a70a8a5 116 SerialPrintCheckBox( !network, VT100::WHITE );
mluis 0:45496a70a8a5 117 }
mluis 0:45496a70a8a5 118
mluis 0:45496a70a8a5 119 void SerialDisplayUpdateNetworkIsJoined( bool state )
mluis 0:45496a70a8a5 120 {
mluis 0:45496a70a8a5 121 vt.SetCursorPos( 20, 17 );
mluis 0:45496a70a8a5 122 SerialPrintCheckBox( !state, VT100::RED );
mluis 0:45496a70a8a5 123 vt.SetCursorPos( 20, 30 );
mluis 0:45496a70a8a5 124 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:45496a70a8a5 125 }
mluis 0:45496a70a8a5 126
mluis 0:45496a70a8a5 127 void SerialDisplayUpdateLedState( uint8_t id, uint8_t state )
mluis 0:45496a70a8a5 128 {
mluis 0:45496a70a8a5 129 switch( id )
mluis 0:45496a70a8a5 130 {
mluis 0:45496a70a8a5 131 case 1:
mluis 0:45496a70a8a5 132 vt.SetCursorPos( 22, 17 );
mluis 0:45496a70a8a5 133 SerialPrintCheckBox( state, VT100::RED );
mluis 0:45496a70a8a5 134 break;
mluis 0:45496a70a8a5 135 case 2:
mluis 0:45496a70a8a5 136 vt.SetCursorPos( 22, 31 );
mluis 0:45496a70a8a5 137 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:45496a70a8a5 138 break;
mluis 0:45496a70a8a5 139 case 3:
mluis 0:45496a70a8a5 140 vt.SetCursorPos( 22, 45 );
mluis 0:45496a70a8a5 141 SerialPrintCheckBox( state, VT100::BLUE );
mluis 0:45496a70a8a5 142 break;
mluis 0:45496a70a8a5 143 }
mluis 0:45496a70a8a5 144 }
mluis 0:45496a70a8a5 145
mluis 0:45496a70a8a5 146 void SerialDisplayUpdateData( uint8_t line, uint8_t *buffer, uint8_t size )
mluis 0:45496a70a8a5 147 {
mluis 0:45496a70a8a5 148 if( size != 0 )
mluis 0:45496a70a8a5 149 {
mluis 0:45496a70a8a5 150 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 151 for( uint8_t i = 0; i < size; i++ )
mluis 0:45496a70a8a5 152 {
mluis 0:45496a70a8a5 153 vt.printf( "%02X ", buffer[i] );
mluis 0:45496a70a8a5 154 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:45496a70a8a5 155 {
mluis 0:45496a70a8a5 156 line++;
mluis 0:45496a70a8a5 157 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 158 }
mluis 0:45496a70a8a5 159 }
mluis 0:45496a70a8a5 160 for( uint8_t i = size; i < 64; i++ )
mluis 0:45496a70a8a5 161 {
mluis 0:45496a70a8a5 162 vt.printf( "__ " );
mluis 0:45496a70a8a5 163 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:45496a70a8a5 164 {
mluis 0:45496a70a8a5 165 line++;
mluis 0:45496a70a8a5 166 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 167 }
mluis 0:45496a70a8a5 168 }
mluis 0:45496a70a8a5 169 vt.SetCursorPos( line - 1, 74 );
mluis 0:45496a70a8a5 170 vt.printf( "]" );
mluis 0:45496a70a8a5 171 }
mluis 0:45496a70a8a5 172 else
mluis 0:45496a70a8a5 173 {
mluis 0:45496a70a8a5 174 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 175 for( uint8_t i = 0; i < 64; i++ )
mluis 0:45496a70a8a5 176 {
mluis 0:45496a70a8a5 177 vt.printf( "__ " );
mluis 0:45496a70a8a5 178 if( ( ( i + 1 ) % 16 ) == 0 )
mluis 0:45496a70a8a5 179 {
mluis 0:45496a70a8a5 180 line++;
mluis 0:45496a70a8a5 181 vt.SetCursorPos( line, 27 );
mluis 0:45496a70a8a5 182 }
mluis 0:45496a70a8a5 183 }
mluis 0:45496a70a8a5 184 vt.SetCursorPos( line - 1, 74 );
mluis 0:45496a70a8a5 185 vt.printf( "]" );
mluis 0:45496a70a8a5 186 }
mluis 0:45496a70a8a5 187 }
mluis 0:45496a70a8a5 188
mluis 0:45496a70a8a5 189 void SerialDisplayUpdateUplinkAcked( bool state )
mluis 0:45496a70a8a5 190 {
mluis 0:45496a70a8a5 191 vt.SetCursorPos( 24, 36 );
mluis 0:45496a70a8a5 192 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:45496a70a8a5 193 }
mluis 0:45496a70a8a5 194
mluis 0:45496a70a8a5 195 void SerialDisplayUpdateUplink( bool acked, uint8_t datarate, uint16_t counter, uint8_t port, uint8_t *buffer, uint8_t bufferSize )
mluis 0:45496a70a8a5 196 {
mluis 0:45496a70a8a5 197 // Acked
mluis 0:45496a70a8a5 198 SerialDisplayUpdateUplinkAcked( acked );
mluis 0:45496a70a8a5 199 // Datarate
mluis 0:45496a70a8a5 200 vt.SetCursorPos( 25, 33 );
mluis 0:45496a70a8a5 201 vt.printf( "DR%d", datarate );
mluis 0:45496a70a8a5 202 // Counter
mluis 0:45496a70a8a5 203 vt.SetCursorPos( 26, 27 );
mluis 0:45496a70a8a5 204 vt.printf( "%10d", counter );
mluis 0:45496a70a8a5 205 // Port
mluis 0:45496a70a8a5 206 vt.SetCursorPos( 27, 34 );
mluis 0:45496a70a8a5 207 vt.printf( "%3d", port );
mluis 0:45496a70a8a5 208 // Data
mluis 0:45496a70a8a5 209 SerialDisplayUpdateData( 28, buffer, bufferSize );
mluis 0:45496a70a8a5 210 // Help message
mluis 0:45496a70a8a5 211 vt.SetCursorPos( 42, 1 );
mluis 0:45496a70a8a5 212 vt.printf( "To refresh screen please hit 'r' key." );
mluis 0:45496a70a8a5 213 }
mluis 0:45496a70a8a5 214
mluis 0:45496a70a8a5 215 void SerialDisplayUpdateDonwlinkRxData( bool state )
mluis 0:45496a70a8a5 216 {
mluis 0:45496a70a8a5 217 vt.SetCursorPos( 34, 4 );
mluis 0:45496a70a8a5 218 SerialPrintCheckBox( state, VT100::GREEN );
mluis 0:45496a70a8a5 219 }
mluis 0:45496a70a8a5 220
mluis 0:45496a70a8a5 221 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 222 {
mluis 0:45496a70a8a5 223 // Rx data
mluis 0:45496a70a8a5 224 SerialDisplayUpdateDonwlinkRxData( rxData );
mluis 0:45496a70a8a5 225 // RSSI
mluis 0:45496a70a8a5 226 vt.SetCursorPos( 33, 32 );
mluis 0:45496a70a8a5 227 vt.printf( "%5d", rssi );
mluis 0:45496a70a8a5 228 // SNR
mluis 0:45496a70a8a5 229 vt.SetCursorPos( 34, 32 );
mluis 0:45496a70a8a5 230 vt.printf( "%5d", snr );
mluis 0:45496a70a8a5 231 // Counter
mluis 0:45496a70a8a5 232 vt.SetCursorPos( 35, 27 );
mluis 0:45496a70a8a5 233 vt.printf( "%10d", counter );
mluis 0:45496a70a8a5 234 if( rxData == true )
mluis 0:45496a70a8a5 235 {
mluis 0:45496a70a8a5 236 // Port
mluis 0:45496a70a8a5 237 vt.SetCursorPos( 36, 34 );
mluis 0:45496a70a8a5 238 vt.printf( "%3d", port );
mluis 0:45496a70a8a5 239 // Data
mluis 0:45496a70a8a5 240 SerialDisplayUpdateData( 37, buffer, bufferSize );
mluis 0:45496a70a8a5 241 }
mluis 0:45496a70a8a5 242 else
mluis 0:45496a70a8a5 243 {
mluis 0:45496a70a8a5 244 // Port
mluis 0:45496a70a8a5 245 vt.SetCursorPos( 36, 34 );
mluis 0:45496a70a8a5 246 vt.printf( " " );
mluis 0:45496a70a8a5 247 // Data
mluis 0:45496a70a8a5 248 SerialDisplayUpdateData( 37, NULL, 0 );
mluis 0:45496a70a8a5 249 }
mluis 0:45496a70a8a5 250 }
MGstic 10:1a85ff06be1a 251 void SerialDisplayRTCactive( bool etat )
MGstic 10:1a85ff06be1a 252 {
MGstic 10:1a85ff06be1a 253 if (etat==0)
MGstic 10:1a85ff06be1a 254 {
MGstic 10:1a85ff06be1a 255 vt.SetCursorPos( 42, 17 );
MGstic 10:1a85ff06be1a 256 SerialPrintCheckBox( !etat, VT100::RED );
MGstic 10:1a85ff06be1a 257 }
MGstic 10:1a85ff06be1a 258 else
MGstic 10:1a85ff06be1a 259 {
MGstic 10:1a85ff06be1a 260 vt.SetCursorPos( 42, 17 );
MGstic 10:1a85ff06be1a 261 SerialPrintCheckBox( etat, VT100::GREEN );
MGstic 10:1a85ff06be1a 262 }
MGstic 10:1a85ff06be1a 263 }
MGstic 10:1a85ff06be1a 264
MGstic 10:1a85ff06be1a 265 void SerialDisplayTIME( int tab[6] )
MGstic 10:1a85ff06be1a 266 {
MGstic 10:1a85ff06be1a 267 for(int i=0;i<6;i++)
MGstic 10:1a85ff06be1a 268 {
MGstic 10:1a85ff06be1a 269 vt.SetCursorPos( (44+i), 28 );
MGstic 10:1a85ff06be1a 270 vt.printf( "%2d", tab[i] );
MGstic 10:1a85ff06be1a 271 }
MGstic 10:1a85ff06be1a 272
MGstic 10:1a85ff06be1a 273 }
mluis 0:45496a70a8a5 274
mluis 0:45496a70a8a5 275 void SerialDisplayDrawFirstLine( void )
mluis 0:45496a70a8a5 276 {
mluis 0:45496a70a8a5 277 vt.PutBoxDrawingChar( 'l' );
mluis 0:45496a70a8a5 278 for( int8_t i = 0; i <= 77; i++ )
mluis 0:45496a70a8a5 279 {
mluis 0:45496a70a8a5 280 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 281 }
mluis 0:45496a70a8a5 282 vt.PutBoxDrawingChar( 'k' );
mluis 0:45496a70a8a5 283 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 284 }
mluis 0:45496a70a8a5 285
mluis 0:45496a70a8a5 286 void SerialDisplayDrawTitle( const char* title )
mluis 0:45496a70a8a5 287 {
mluis 0:45496a70a8a5 288 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 289 vt.printf( "%s", title );
mluis 0:45496a70a8a5 290 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 291 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 292 }
mluis 0:45496a70a8a5 293 void SerialDisplayDrawTopSeparator( void )
mluis 0:45496a70a8a5 294 {
mluis 0:45496a70a8a5 295 vt.PutBoxDrawingChar( 't' );
mluis 0:45496a70a8a5 296 for( int8_t i = 0; i <= 11; i++ )
mluis 0:45496a70a8a5 297 {
mluis 0:45496a70a8a5 298 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 299 }
mluis 0:45496a70a8a5 300 vt.PutBoxDrawingChar( 'w' );
mluis 0:45496a70a8a5 301 for( int8_t i = 0; i <= 64; i++ )
mluis 0:45496a70a8a5 302 {
mluis 0:45496a70a8a5 303 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 304 }
mluis 0:45496a70a8a5 305 vt.PutBoxDrawingChar( 'u' );
mluis 0:45496a70a8a5 306 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 307 }
mluis 0:45496a70a8a5 308
mluis 0:45496a70a8a5 309 void SerialDisplayDrawColSeparator( void )
mluis 0:45496a70a8a5 310 {
mluis 0:45496a70a8a5 311 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 312 for( int8_t i = 0; i <= 11; i++ )
mluis 0:45496a70a8a5 313 {
mluis 0:45496a70a8a5 314 vt.PutBoxDrawingChar( ' ' );
mluis 0:45496a70a8a5 315 }
mluis 0:45496a70a8a5 316 vt.PutBoxDrawingChar( 't' );
mluis 0:45496a70a8a5 317 for( int8_t i = 0; i <= 64; i++ )
mluis 0:45496a70a8a5 318 {
mluis 0:45496a70a8a5 319 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 320 }
mluis 0:45496a70a8a5 321 vt.PutBoxDrawingChar( 'u' );
mluis 0:45496a70a8a5 322 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 323 }
mluis 0:45496a70a8a5 324
mluis 0:45496a70a8a5 325 void SerialDisplayDrawSeparator( void )
mluis 0:45496a70a8a5 326 {
mluis 0:45496a70a8a5 327 vt.PutBoxDrawingChar( 't' );
mluis 0:45496a70a8a5 328 for( int8_t i = 0; i <= 11; i++ )
mluis 0:45496a70a8a5 329 {
mluis 0:45496a70a8a5 330 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 331 }
mluis 0:45496a70a8a5 332 vt.PutBoxDrawingChar( 'n' );
mluis 0:45496a70a8a5 333 for( int8_t i = 0; i <= 64; i++ )
mluis 0:45496a70a8a5 334 {
mluis 0:45496a70a8a5 335 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 336 }
mluis 0:45496a70a8a5 337 vt.PutBoxDrawingChar( 'u' );
mluis 0:45496a70a8a5 338 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 339 }
mluis 0:45496a70a8a5 340
mluis 0:45496a70a8a5 341 void SerialDisplayDrawLine( const char* firstCol, const char* secondCol )
mluis 0:45496a70a8a5 342 {
mluis 0:45496a70a8a5 343 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 344 vt.printf( "%s", firstCol );
mluis 0:45496a70a8a5 345 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 346 vt.printf( "%s", secondCol );
mluis 0:45496a70a8a5 347 vt.PutBoxDrawingChar( 'x' );
mluis 0:45496a70a8a5 348 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 349 }
mluis 0:45496a70a8a5 350
mluis 0:45496a70a8a5 351 void SerialDisplayDrawBottomLine( void )
mluis 0:45496a70a8a5 352 {
mluis 0:45496a70a8a5 353 vt.PutBoxDrawingChar( 'm' );
mluis 0:45496a70a8a5 354 for( int8_t i = 0; i <= 11; i++ )
mluis 0:45496a70a8a5 355 {
mluis 0:45496a70a8a5 356 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 357 }
mluis 0:45496a70a8a5 358 vt.PutBoxDrawingChar( 'v' );
mluis 0:45496a70a8a5 359 for( int8_t i = 0; i <= 64; i++ )
mluis 0:45496a70a8a5 360 {
mluis 0:45496a70a8a5 361 vt.PutBoxDrawingChar( 'q' );
mluis 0:45496a70a8a5 362 }
mluis 0:45496a70a8a5 363 vt.PutBoxDrawingChar( 'j' );
mluis 0:45496a70a8a5 364 vt.printf( "\r\n" );
mluis 0:45496a70a8a5 365 }
mluis 0:45496a70a8a5 366
mluis 0:45496a70a8a5 367 void SerialDisplayInit( void )
mluis 0:45496a70a8a5 368 {
mluis 0:45496a70a8a5 369 vt.ClearScreen( 2 );
mluis 0:45496a70a8a5 370 vt.SetCursorMode( false );
mluis 0:45496a70a8a5 371 vt.SetCursorPos( 0, 0 );
mluis 0:45496a70a8a5 372
mluis 0:45496a70a8a5 373 // "+-----------------------------------------------------------------------------+" );
mluis 0:45496a70a8a5 374 SerialDisplayDrawFirstLine( );
mluis 0:45496a70a8a5 375 // "¦ LoRaWAN Demonstration Application ¦" );
mluis 0:45496a70a8a5 376 SerialDisplayDrawTitle( " LoRaWAN Demonstration Application " );
mluis 0:45496a70a8a5 377 // "+------------+----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 378 SerialDisplayDrawTopSeparator( );
mluis 0:45496a70a8a5 379 // "¦ Activation ¦ [ ]Over The Air ¦" );
mluis 0:45496a70a8a5 380 SerialDisplayDrawLine( " Activation ", " [ ]Over The Air " );
mluis 0:45496a70a8a5 381 // "¦ ¦ DevEui [__ __ __ __ __ __ __ __] ¦" );
mluis 0:45496a70a8a5 382 SerialDisplayDrawLine( " ", " DevEui [__ __ __ __ __ __ __ __] " );
mluis 0:45496a70a8a5 383 // "¦ ¦ AppEui [__ __ __ __ __ __ __ __] ¦" );
mluis 0:45496a70a8a5 384 SerialDisplayDrawLine( " ", " AppEui [__ __ __ __ __ __ __ __] " );
mluis 0:45496a70a8a5 385 // "¦ ¦ AppKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:45496a70a8a5 386 SerialDisplayDrawLine( " ", " AppKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:45496a70a8a5 387 // "¦ +----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 388 SerialDisplayDrawColSeparator( );
mluis 0:45496a70a8a5 389 // "¦ ¦ [x]Personalisation ¦" );
mluis 0:45496a70a8a5 390 SerialDisplayDrawLine( " ", " [ ]Personalisation " );
mluis 0:45496a70a8a5 391 // "¦ ¦ NwkId [___] ¦" );
mluis 0:45496a70a8a5 392 SerialDisplayDrawLine( " ", " NwkId [___] " );
mluis 0:45496a70a8a5 393 // "¦ ¦ DevAddr [__ __ __ __] ¦" );
mluis 0:45496a70a8a5 394 SerialDisplayDrawLine( " ", " DevAddr [__ __ __ __] " );
mluis 0:45496a70a8a5 395 // "¦ ¦ NwkSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:45496a70a8a5 396 SerialDisplayDrawLine( " ", " NwkSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:45496a70a8a5 397 // "¦ ¦ AppSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] ¦" );
mluis 0:45496a70a8a5 398 SerialDisplayDrawLine( " ", " AppSKey [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __] " );
mluis 0:45496a70a8a5 399 // "+------------+----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 400 SerialDisplayDrawSeparator( );
mluis 0:45496a70a8a5 401 // "¦ MAC params ¦ [ ]Confirmed / [ ]Unconfirmed ¦" );
mluis 0:45496a70a8a5 402 SerialDisplayDrawLine( " MAC params ", " [ ]Confirmed / [ ]Unconfirmed " );
mluis 0:45496a70a8a5 403 // "¦ ¦ ADR [ ] ¦" );
mluis 0:45496a70a8a5 404 SerialDisplayDrawLine( " ", " ADR [ ] " );
mluis 0:45496a70a8a5 405 // "¦ ¦ Duty cycle[ ] ¦" );
mluis 0:45496a70a8a5 406 SerialDisplayDrawLine( " ", " Duty cycle[ ] " );
mluis 0:45496a70a8a5 407 // "+------------+----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 408 SerialDisplayDrawSeparator( );
mluis 0:45496a70a8a5 409 // "¦ Network ¦ [ ]Public / [ ]Private ¦" );
mluis 0:45496a70a8a5 410 SerialDisplayDrawLine( " Network ", " [ ]Public / [ ]Private " );
mluis 0:45496a70a8a5 411 // "¦ ¦ [ ]Joining / [ ]Joined ¦" );
mluis 0:45496a70a8a5 412 SerialDisplayDrawLine( " ", " [ ]Joining / [ ]Joined " );
mluis 0:45496a70a8a5 413 // "+------------+----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 414 SerialDisplayDrawSeparator( );
mluis 0:45496a70a8a5 415 // "¦ LED status ¦ [ ]LED1(Tx) / [ ]LED2(Rx) / [ ]LED3(App) ¦" );
mluis 0:45496a70a8a5 416 SerialDisplayDrawLine( " LED status ", " [ ]LED1(Tx) / [ ]LED2(Rx) / [ ]LED3(App) " );
mluis 0:45496a70a8a5 417 // "+------------+----------------------------------------------------------------¦" );
mluis 0:45496a70a8a5 418 SerialDisplayDrawSeparator( );
mluis 0:45496a70a8a5 419 // "¦ Uplink ¦ Acked [ ] ¦" );
mluis 0:45496a70a8a5 420 SerialDisplayDrawLine( " Uplink ", " Acked [ ] " );
mluis 0:45496a70a8a5 421 // "¦ ¦ Datarate [ ] ¦" );
mluis 0:45496a70a8a5 422 SerialDisplayDrawLine( " ", " Datarate [ ] " );
mluis 0:45496a70a8a5 423 // "¦ ¦ Counter [ ] ¦" );
mluis 0:45496a70a8a5 424 SerialDisplayDrawLine( " ", " Counter [ ] " );
mluis 0:45496a70a8a5 425 // "¦ ¦ Port [ ] ¦" );
mluis 0:45496a70a8a5 426 SerialDisplayDrawLine( " ", " Port [ ] " );
mluis 0:45496a70a8a5 427 // "¦ ¦ Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 428 SerialDisplayDrawLine( " ", " Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:45496a70a8a5 429 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 430 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
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 SerialDisplayDrawSeparator( );
mluis 0:45496a70a8a5 437 // "¦ Downlink ¦ RSSI [ ] dBm ¦" );
mluis 0:45496a70a8a5 438 SerialDisplayDrawLine( " Downlink ", " RSSI [ ] dBm " );
mluis 0:45496a70a8a5 439 // "¦ [ ]Data ¦ SNR [ ] dB ¦" );
mluis 0:45496a70a8a5 440 SerialDisplayDrawLine( " [ ]Data ", " SNR [ ] dB " );
mluis 0:45496a70a8a5 441 // "¦ ¦ Counter [ ] ¦" );
mluis 0:45496a70a8a5 442 // "¦ ¦ Counter [ ] ¦" );
mluis 0:45496a70a8a5 443 SerialDisplayDrawLine( " ", " Counter [ ] " );
mluis 0:45496a70a8a5 444 // "¦ ¦ Port [ ] ¦" );
mluis 0:45496a70a8a5 445 SerialDisplayDrawLine( " ", " Port [ ] " );
mluis 0:45496a70a8a5 446 // "¦ ¦ Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 447 SerialDisplayDrawLine( " ", " Data [__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:45496a70a8a5 448 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 449 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:45496a70a8a5 450 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 451 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:45496a70a8a5 452 // "¦ ¦ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ ¦" );
mluis 0:45496a70a8a5 453 SerialDisplayDrawLine( " ", " __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ " );
mluis 0:45496a70a8a5 454 // "+------------+----------------------------------------------------------------+" );
MGstic 10:1a85ff06be1a 455 SerialDisplayDrawTopSeparator( );
MGstic 10:1a85ff06be1a 456 SerialDisplayDrawLine( " ConfigRTC ", " [ ]Active " );
MGstic 10:1a85ff06be1a 457 SerialDisplayDrawLine( " ", " 0. Valider/Quitter " );
MGstic 10:1a85ff06be1a 458 SerialDisplayDrawLine( " ", " 1. Heure [ ] " );
MGstic 10:1a85ff06be1a 459 SerialDisplayDrawLine( " ", " 2. Minute [ ] " );
MGstic 10:1a85ff06be1a 460 SerialDisplayDrawLine( " ", " 3. Seconde [ ] " );
MGstic 10:1a85ff06be1a 461 SerialDisplayDrawLine( " ", " 4. Jour [ ] " );
MGstic 10:1a85ff06be1a 462 SerialDisplayDrawLine( " ", " 5. Mois [ ] " );
MGstic 10:1a85ff06be1a 463 SerialDisplayDrawLine( " ", " 6. Annee [ ] " );
MGstic 10:1a85ff06be1a 464 SerialDisplayDrawLine( " ", " Selection [__] Valeur [ ] " );
mluis 0:45496a70a8a5 465 SerialDisplayDrawBottomLine( );
mluis 0:45496a70a8a5 466 vt.printf( "To refresh screen please hit 'r' key.\r\n" );
mluis 0:45496a70a8a5 467 }
mluis 0:45496a70a8a5 468
mluis 0:45496a70a8a5 469 bool SerialDisplayReadable( void )
mluis 0:45496a70a8a5 470 {
mluis 0:45496a70a8a5 471 return vt.Readable( );
mluis 0:45496a70a8a5 472 }
mluis 0:45496a70a8a5 473
mluis 0:45496a70a8a5 474 uint8_t SerialDisplayGetChar( void )
mluis 0:45496a70a8a5 475 {
mluis 0:45496a70a8a5 476 return vt.GetChar( );
mluis 0:45496a70a8a5 477 }
MGstic 10:1a85ff06be1a 478
MGstic 10:1a85ff06be1a 479
MGstic 10:1a85ff06be1a 480 void saisie_serie(int tab[6])
MGstic 10:1a85ff06be1a 481 {
MGstic 10:1a85ff06be1a 482 int inter=9;
MGstic 10:1a85ff06be1a 483 while( inter != 0) {
MGstic 10:1a85ff06be1a 484
MGstic 10:1a85ff06be1a 485 scanf("%d",&inter); //lecture saisie clavier
MGstic 10:1a85ff06be1a 486 vt.SetCursorPos( 50, 28 );
MGstic 10:1a85ff06be1a 487 vt.printf( "%2d", inter );
MGstic 10:1a85ff06be1a 488 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 489 vt.printf( " ");
MGstic 10:1a85ff06be1a 490 SerialDisplayTIME(tab);
MGstic 10:1a85ff06be1a 491 switch (inter) {
MGstic 10:1a85ff06be1a 492 case 1:
MGstic 10:1a85ff06be1a 493 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 494 scanf("%d",&tab[0]);
MGstic 10:1a85ff06be1a 495 vt.printf( "%2d", tab[0] );
MGstic 10:1a85ff06be1a 496 break;
MGstic 10:1a85ff06be1a 497
MGstic 10:1a85ff06be1a 498 case 2:
MGstic 10:1a85ff06be1a 499 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 500 scanf("%d",&tab[1]);
MGstic 10:1a85ff06be1a 501 vt.printf( "%2d", tab[1] );
MGstic 10:1a85ff06be1a 502 break;
MGstic 10:1a85ff06be1a 503
MGstic 10:1a85ff06be1a 504 case 3:
MGstic 10:1a85ff06be1a 505 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 506 scanf("%d",&tab[2]);
MGstic 10:1a85ff06be1a 507 vt.printf( "%2d", tab[2] );
MGstic 10:1a85ff06be1a 508 break;
MGstic 10:1a85ff06be1a 509
MGstic 10:1a85ff06be1a 510 case 4:
MGstic 10:1a85ff06be1a 511 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 512 scanf("%d",&tab[3]);
MGstic 10:1a85ff06be1a 513 vt.printf( "%2d", tab[3] );
MGstic 10:1a85ff06be1a 514 break;
MGstic 10:1a85ff06be1a 515
MGstic 10:1a85ff06be1a 516 case 5:
MGstic 10:1a85ff06be1a 517 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 518 scanf("%d",&tab[4]);
MGstic 10:1a85ff06be1a 519 vt.printf( "%2d", tab[4] );
MGstic 10:1a85ff06be1a 520 break;
MGstic 10:1a85ff06be1a 521
MGstic 10:1a85ff06be1a 522 case 6:
MGstic 10:1a85ff06be1a 523 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 524 scanf("%d",&tab[5]);
MGstic 10:1a85ff06be1a 525 vt.printf( "%2d", tab[5] );
MGstic 10:1a85ff06be1a 526 break;
MGstic 10:1a85ff06be1a 527
MGstic 10:1a85ff06be1a 528 default:
MGstic 10:1a85ff06be1a 529 vt.SetCursorPos( 50, 58 );
MGstic 10:1a85ff06be1a 530 vt.printf( " ");
MGstic 10:1a85ff06be1a 531 break;
MGstic 10:1a85ff06be1a 532 }
MGstic 10:1a85ff06be1a 533 }
MGstic 10:1a85ff06be1a 534
MGstic 10:1a85ff06be1a 535 }
MGstic 10:1a85ff06be1a 536