Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed LoRaWAN-lib SX1272Lib
Revision 11:8407ff54c40e, committed 2019-02-06
- Comitter:
- MGstic
- Date:
- Wed Feb 06 19:16:44 2019 +0000
- Parent:
- 10:1a85ff06be1a
- Commit message:
- V04;
Changed in this revision
--- a/app/SerialDisplay.cpp Wed Jan 23 16:28:51 2019 +0000 +++ b/app/SerialDisplay.cpp Wed Feb 06 19:16:44 2019 +0000 @@ -208,7 +208,7 @@ // Data SerialDisplayUpdateData( 28, buffer, bufferSize ); // Help message - vt.SetCursorPos( 42, 1 ); + vt.SetCursorPos( 52, 1 ); vt.printf( "To refresh screen please hit 'r' key." ); } @@ -271,6 +271,14 @@ } } +void SerialDisplaytest( int p,int i ) +{ + + vt.SetCursorPos( (42+i), 58 ); + vt.printf( "%2d", p ); + + +} void SerialDisplayDrawFirstLine( void ) { @@ -461,7 +469,7 @@ SerialDisplayDrawLine( " ", " 4. Jour [ ] " ); SerialDisplayDrawLine( " ", " 5. Mois [ ] " ); SerialDisplayDrawLine( " ", " 6. Annee [ ] " ); - SerialDisplayDrawLine( " ", " Selection [__] Valeur [ ] " ); + SerialDisplayDrawLine( " ", " Selection [__] Valeur " ); SerialDisplayDrawBottomLine( ); vt.printf( "To refresh screen please hit 'r' key.\r\n" ); } @@ -480,54 +488,133 @@ void saisie_serie(int tab[6]) { int inter=9; + int a; while( inter != 0) { - scanf("%d",&inter); //lecture saisie clavier + //scanf("%d",&inter); //lecture saisie clavier + inter=((int)vt.getc())-48; vt.SetCursorPos( 50, 28 ); vt.printf( "%2d", inter ); - vt.SetCursorPos( 50, 58 ); - vt.printf( " "); - SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 56 ); + vt.printf( " "); + switch (inter) { case 1: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[0]); - vt.printf( "%2d", tab[0] ); + + vt.SetCursorPos( 50, 61 ); + vt.printf("HEURE"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[0]=a*10; + vt.printf( "%2d", a); + vt.SetCursorPos( 50, 57 ); + a=((int)vt.getc())-48; + tab[0]=tab[0]+a; + vt.printf( "%2d", tab[0]); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; case 2: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[1]); - vt.printf( "%2d", tab[1] ); + + vt.SetCursorPos( 50, 61 ); + vt.printf("MINUTE"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[1]=a*10; + vt.printf( "%2d", a); + vt.SetCursorPos( 50, 57 ); + a=((int)vt.getc())-48; + tab[1]=tab[1]+a; + vt.printf( "%2d", tab[1]); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; case 3: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[2]); - vt.printf( "%2d", tab[2] ); + + vt.SetCursorPos( 50, 61 ); + vt.printf("SECONDE"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[2]=a*10; + vt.printf( "%2d", a); + vt.SetCursorPos( 50, 57 ); + a=((int)vt.getc())-48; + tab[2]=tab[2]+a; + vt.printf( "%2d", tab[2]); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; case 4: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[3]); - vt.printf( "%2d", tab[3] ); + + vt.SetCursorPos( 50, 61 ); + vt.printf("JOUR"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[3]=a*10; + vt.printf( "%2d", a); + vt.SetCursorPos( 50, 57 ); + a=((int)vt.getc())-48; + tab[3]=tab[3]+a; + vt.printf( "%2d", tab[3]); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; case 5: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[4]); - vt.printf( "%2d", tab[4] ); + + vt.SetCursorPos( 50, 61 ); + vt.printf("MOIS"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[4]=a*10; + vt.printf( "%2d", a); + vt.SetCursorPos( 50, 57 ); + a=((int)vt.getc())-48; + tab[4]=tab[4]+a; + vt.printf( "%2d", tab[4]); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; case 6: - vt.SetCursorPos( 50, 58 ); - scanf("%d",&tab[5]); - vt.printf( "%2d", tab[5] ); + + vt.SetCursorPos( 50, 63 ); + vt.printf("ANNEE"); + vt.SetCursorPos( 50, 56 ); + a=(((int)vt.getc())-48); + tab[5]=a*1000; + vt.printf( "%d", a); + vt.SetCursorPos( 50, 57 ); + a=(((int)vt.getc())-48); + tab[5]=tab[5]+a*100; + vt.printf( "%d", a); + vt.SetCursorPos( 50, 58 ); + a=(((int)vt.getc())-48); + tab[5]=tab[5]+a*10; + vt.printf( "%d", a); + vt.SetCursorPos( 50, 59 ); + a=((int)vt.getc())-48; + tab[5]=tab[5]+a; + vt.printf( "%d", a); + SerialDisplayTIME(tab); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); break; default: - vt.SetCursorPos( 50, 58 ); - vt.printf( " "); + vt.SetCursorPos( 50, 56 ); + vt.printf( " "); + vt.SetCursorPos( 50, 28 ); + vt.printf( " "); + SerialDisplayTIME(tab); break; } }
--- a/app/SerialDisplay.h Wed Jan 23 16:28:51 2019 +0000 +++ b/app/SerialDisplay.h Wed Feb 06 19:16:44 2019 +0000 @@ -38,6 +38,7 @@ void SerialDisplayRTCactive( bool etat ); void SerialDisplayTIME( int tab[6] ); void saisie_serie(int tab[6]); +void SerialDisplaytest( int p,int i );
--- a/app/main.cpp Wed Jan 23 16:28:51 2019 +0000 +++ b/app/main.cpp Wed Feb 06 19:16:44 2019 +0000 @@ -12,9 +12,9 @@ /*! * Defines the application data transmission duty cycle. 1s, value in [ms]. */ -#define APP_TX_DUTYCYCLE 1000 -#define TAB_MAX 10 -#define APP_TX_DUTYCYCLE_RND 250 +#define APP_TX_DUTYCYCLE 500 +#define TAB_MAX 20 +#define APP_TX_DUTYCYCLE_RND 5 #define LORAWAN_DEFAULT_DATARATE DR_5 #define LORAWAN_CONFIRMED_MSG_ON true @@ -40,8 +40,8 @@ //############INITIALISATION LIAISON SERIE#################### void saisie_serie(int tab[6]); -int tabd[6]= {0,0,0,1,1,2018}; - +//int tabd[6]= {0,0,0,1,1,2018}; + int tabd[6]; InterruptIn bouton(USER_BUTTON); // Déclaration de l'interruption extern activée par le bouton utilisateur bleu //Serial pc(USBTX, USBRX); // tx, rx//Serial pc(SERIAL_TX, SERIAL_RX); // Déclaration de entrées pour la liaison série @@ -184,7 +184,7 @@ }LoRaMacDownlinkStatus; volatile bool DownlinkStatusUpdated = false; -void SerialDisplayRefresh( void ) +void SerialDisplayRefresh( int tabd[6] ) { MibRequestConfirm_t mibReq; @@ -221,7 +221,7 @@ case 'R': case 'r': // Refresh Serial screen - SerialDisplayRefresh( ); + SerialDisplayRefresh(tabd); break; default: break; @@ -233,12 +233,12 @@ * \brief Prepares the payload of the frame */ -uint8_t poidstest=34; -uint8_t heuretest=0; +int poidstest=34; + typedef struct { - uint8_t heure;//[8]; // Augmentation taille prog. Solution : heure = pointeur vers malloc (26 ou sizeof ctime)=1bit - uint8_t masse;//[8]; + int heure[8]; // Augmentation taille prog. Solution : heure = pointeur vers malloc (26 ou sizeof ctime)=1bit + int masse[8]; } data; data data_packet[TAB_MAX]; @@ -256,33 +256,19 @@ } //################################## -static void PrepareTxFrame( uint8_t port,data datat )//, 2EME PARAMETRE TABLEAU DONNEE INIT=>APPDATA DANS FONCION fournir 1 case tableau data_packet -{ - int dpacket[8]; - time_t seconds=time(NULL); +static void PrepareTxFrame( uint8_t port,data datat[TAB_MAX],int compt )//, 2EME PARAMETRE TABLEAU DONNEE INIT=>APPDATA DANS FONCION fournir 1 case tableau data_packet +{ switch( port ) { case 15: { - //printf("%d\r\n",seconds); - copy_time(dpacket,seconds); - /*for(int k=0;k<8;k++) - { - printf("%X",dpacket[k]); - } - printf("\n\r");*/ + for(int h=0;h<8;h++) { - - - AppData[h]=dpacket[h]; - //AppData[h]=datat.heure; - //printf(" ||H:%d|\n\r",AppData[0]); - - //printf(" ||P:%d|\n\r",AppData[16]); + AppData[h]=datat[compt].heure[h]; } - AppData[16]=datat.masse; + AppData[16]=datat[compt].masse[0]; } break; case 224: @@ -368,9 +354,11 @@ if( LoRaMacMcpsRequest( &mcpsReq ) == LORAMAC_STATUS_OK ) { + return false; } return true; + } /*! @@ -454,6 +442,7 @@ * \param [IN] mcpsIndication - Pointer to the indication structure, * containing indication attributes. */ +uint8_t c_send=TAB_MAX; static void McpsIndication( McpsIndication_t *mcpsIndication ) { if( mcpsIndication->Status != LORAMAC_EVENT_INFO_STATUS_OK ) @@ -505,6 +494,7 @@ LoRaMacDownlinkStatus.Snr = ( mcpsIndication->Snr & 0xFF ) >> 2; } LoRaMacDownlinkStatus.DownlinkCounter++; + c_send--; LoRaMacDownlinkStatus.RxData = mcpsIndication->RxData; LoRaMacDownlinkStatus.Port = mcpsIndication->Port; LoRaMacDownlinkStatus.Buffer = mcpsIndication->Buffer; @@ -710,13 +700,29 @@ NextTx = true; UplinkStatusUpdated = true; } + void fil (int tabd[6],time_t seconde) + { + char buffer[8]; + strftime(buffer, 8, "%Y\n", localtime(&seconde)); + tabd[5]=atoi(buffer); + strftime(buffer, 8, "%m\n", localtime(&seconde)); + tabd[4]=atoi(buffer); + strftime(buffer, 8, "%d\n", localtime(&seconde)); + tabd[3]=atoi(buffer); + strftime(buffer, 8, "%S\n", localtime(&seconde)); + tabd[2]=atoi(buffer); + strftime(buffer, 8, "%M\n", localtime(&seconde)); + tabd[1]=atoi(buffer); + strftime(buffer, 8, "%H\n", localtime(&seconde)); + tabd[0]=atoi(buffer); + +} /*###################################################################### * Main application entry point. */ - int main( void ) { //####### INITIALISATION MODULE LORA ############ @@ -741,12 +747,12 @@ bouton.rise(&interruption_extern_bouton); //initialisation de l'interruption extern sur le bouton user //####### RTC INIT ######## - set_time(1514764800); + //set_time(1514764800); int config_s=0; //####### VARIABLES ######## uint8_t compt=0; - uint8_t c_send=TAB_MAX; + while( 1 ) { @@ -772,155 +778,183 @@ //SerialDisplayUpdateLedState( 2, Led2State ); SerialDisplayUpdateDownlink( LoRaMacDownlinkStatus.RxData, LoRaMacDownlinkStatus.Rssi, LoRaMacDownlinkStatus.Snr, LoRaMacDownlinkStatus.DownlinkCounter, LoRaMacDownlinkStatus.Port, LoRaMacDownlinkStatus.Buffer, LoRaMacDownlinkStatus.BufferSize ); } + + } - - //time_t seconds = time(NULL); - //sprintf(data_packet[compt].heure,"%s",ctime(&seconds));// copie de la valeur de la RTC en cours dans le tableau de structure data_packet - - data_packet[0].heure=heuretest; - data_packet[0].masse=poidstest; + data_packet[compt].masse[0]=poidstest; poidstest++; - heuretest++; - - //printf("%d\r\n",compt); - - wait(1); switch (etat) { case 0: //bouton non enclenché - { + { + time_t seconds=time(NULL); + fil (tabd,seconds); + SerialDisplaytest( compt,0 ); + SerialDisplaytest( c_send,1 ); SerialDisplayRTCactive(etat); SerialDisplayTIME(tabd); - time_t seconds = time(NULL); - switch( DeviceState ) + //time_t seconds = time(NULL) + if (compt<=(TAB_MAX-1)||(c_send==0)) { + if( c_send==0) + { + compt=0; + c_send=TAB_MAX; + } + wait(3); + //time_t seconds=time(NULL); + copy_time(data_packet[compt].heure,seconds); + compt++; + } - case DEVICE_STATE_INIT: + else + { //SerialDisplaytest( compt+1,8 ); + switch( DeviceState ) { - LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm; - LoRaMacPrimitives.MacMcpsIndication = McpsIndication; - LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm; - LoRaMacCallbacks.GetBatteryLevel = BoardGetBatteryLevel; - LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks ); - TimerInit( &TxNextPacketTimer, OnTxNextPacketTimerEvent ); + case DEVICE_STATE_INIT: + { + LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm; + LoRaMacPrimitives.MacMcpsIndication = McpsIndication; + LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm; + LoRaMacCallbacks.GetBatteryLevel = BoardGetBatteryLevel; + LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks ); + TimerInit( &TxNextPacketTimer, OnTxNextPacketTimerEvent ); - mibReq.Type = MIB_ADR; - mibReq.Param.AdrEnable = LORAWAN_ADR_ON; - LoRaMacMibSetRequestConfirm( &mibReq ); - mibReq.Type = MIB_PUBLIC_NETWORK; - mibReq.Param.EnablePublicNetwork = LORAWAN_PUBLIC_NETWORK; - LoRaMacMibSetRequestConfirm( &mibReq ); - LoRaMacTestSetDutyCycleOn( LORAWAN_DUTYCYCLE_ON ); - SerialDisplayUpdateDutyCycle( LORAWAN_DUTYCYCLE_ON ); + mibReq.Type = MIB_ADR; + mibReq.Param.AdrEnable = LORAWAN_ADR_ON; + LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_PUBLIC_NETWORK; + mibReq.Param.EnablePublicNetwork = LORAWAN_PUBLIC_NETWORK; + LoRaMacMibSetRequestConfirm( &mibReq ); + LoRaMacTestSetDutyCycleOn( LORAWAN_DUTYCYCLE_ON ); + SerialDisplayUpdateDutyCycle( LORAWAN_DUTYCYCLE_ON ); - LoRaMacChannelAdd( 3, ( ChannelParams_t )LC4 ); - LoRaMacChannelAdd( 4, ( ChannelParams_t )LC5 ); - LoRaMacChannelAdd( 5, ( ChannelParams_t )LC6 ); - LoRaMacChannelAdd( 6, ( ChannelParams_t )LC7 ); - LoRaMacChannelAdd( 7, ( ChannelParams_t )LC8 ); - LoRaMacChannelAdd( 8, ( ChannelParams_t )LC9 ); - LoRaMacChannelAdd( 9, ( ChannelParams_t )LC10 ); + LoRaMacChannelAdd( 3, ( ChannelParams_t )LC4 ); + LoRaMacChannelAdd( 4, ( ChannelParams_t )LC5 ); + LoRaMacChannelAdd( 5, ( ChannelParams_t )LC6 ); + LoRaMacChannelAdd( 6, ( ChannelParams_t )LC7 ); + LoRaMacChannelAdd( 7, ( ChannelParams_t )LC8 ); + LoRaMacChannelAdd( 8, ( ChannelParams_t )LC9 ); + LoRaMacChannelAdd( 9, ( ChannelParams_t )LC10 ); - mibReq.Type = MIB_RX2_DEFAULT_CHANNEL; - mibReq.Param.Rx2DefaultChannel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; - LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_RX2_DEFAULT_CHANNEL; + mibReq.Param.Rx2DefaultChannel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; + LoRaMacMibSetRequestConfirm( &mibReq ); - mibReq.Type = MIB_RX2_CHANNEL; - mibReq.Param.Rx2Channel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; - LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_RX2_CHANNEL; + mibReq.Param.Rx2Channel = ( Rx2ChannelParams_t ){ 869525000, DR_3 }; + LoRaMacMibSetRequestConfirm( &mibReq ); - SerialDisplayUpdateActivationMode( OVER_THE_AIR_ACTIVATION ); - SerialDisplayUpdateAdr( LORAWAN_ADR_ON ); - SerialDisplayUpdatePublicNetwork( LORAWAN_PUBLIC_NETWORK ); + SerialDisplayUpdateActivationMode( OVER_THE_AIR_ACTIVATION ); + SerialDisplayUpdateAdr( LORAWAN_ADR_ON ); + SerialDisplayUpdatePublicNetwork( LORAWAN_PUBLIC_NETWORK ); - LoRaMacDownlinkStatus.DownlinkCounter = 0; + LoRaMacDownlinkStatus.DownlinkCounter = 0; - DeviceState = DEVICE_STATE_JOIN; - break; - } - case DEVICE_STATE_JOIN: - { - mibReq.Type = MIB_NET_ID; - mibReq.Param.NetID = LORAWAN_NETWORK_ID; - LoRaMacMibSetRequestConfirm( &mibReq ); + DeviceState = DEVICE_STATE_JOIN; + + break; + } + case DEVICE_STATE_JOIN: + { + mibReq.Type = MIB_NET_ID; + mibReq.Param.NetID = LORAWAN_NETWORK_ID; + LoRaMacMibSetRequestConfirm( &mibReq ); - mibReq.Type = MIB_DEV_ADDR; - mibReq.Param.DevAddr = DevAddr; - LoRaMacMibSetRequestConfirm( &mibReq ); - - mibReq.Type = MIB_NWK_SKEY; - mibReq.Param.NwkSKey = NwkSKey; - LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_DEV_ADDR; + mibReq.Param.DevAddr = DevAddr; + LoRaMacMibSetRequestConfirm( &mibReq ); - mibReq.Type = MIB_APP_SKEY; - mibReq.Param.AppSKey = AppSKey; - LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_NWK_SKEY; + mibReq.Param.NwkSKey = NwkSKey; + LoRaMacMibSetRequestConfirm( &mibReq ); - mibReq.Type = MIB_NETWORK_JOINED; - mibReq.Param.IsNetworkJoined = true; - LoRaMacMibSetRequestConfirm( &mibReq ); + mibReq.Type = MIB_APP_SKEY; + mibReq.Param.AppSKey = AppSKey; + LoRaMacMibSetRequestConfirm( &mibReq ); - DeviceState = DEVICE_STATE_SEND; - IsNetworkJoinedStatusUpdate = true; - break; - } - case DEVICE_STATE_SEND: - { - if( NextTx == true ) + mibReq.Type = MIB_NETWORK_JOINED; + mibReq.Param.IsNetworkJoined = true; + LoRaMacMibSetRequestConfirm( &mibReq ); + //c_send--; + // SerialDisplaytest( c_send,3 ); + DeviceState = DEVICE_STATE_SEND; + IsNetworkJoinedStatusUpdate = true; + break; + } + case DEVICE_STATE_SEND: + { + if(NextTx == true ) + { + SerialDisplayUpdateUplinkAcked( false ); + SerialDisplayUpdateDonwlinkRxData( false ); + + ///prepare tx + PrepareTxFrame( AppPort,data_packet,compt-c_send); + NextTx = SendFrame( ); + SerialDisplaytest( compt-c_send,6 ); + + + + } + + if( ComplianceTest.Running == true ) + { + // Schedule next packet transmission + TxDutyCycleTime = 500; // 5000 ms + + + + } + else + { + + // Schedule next packet transmission + TxDutyCycleTime = 75;//APP_TX_DUTYCYCLE + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND ); + } + + DeviceState = DEVICE_STATE_CYCLE; + + + + break; + } + case DEVICE_STATE_CYCLE: { - SerialDisplayUpdateUplinkAcked( false ); - SerialDisplayUpdateDonwlinkRxData( false ); - - ///prepare tx - PrepareTxFrame( AppPort,data_packet[0] ); - NextTx = SendFrame( ); - - - } - if( ComplianceTest.Running == true ) - { - // Schedule next packet transmission - TxDutyCycleTime = 1000; // 5000 ms - } - else - { + // + + // Schedule next packet transmission - TxDutyCycleTime = APP_TX_DUTYCYCLE + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND ); + TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime ); + TimerStart( &TxNextPacketTimer ); + DeviceState = DEVICE_STATE_SLEEP; + break; } - DeviceState = DEVICE_STATE_CYCLE; - break; - } - case DEVICE_STATE_CYCLE: - { - DeviceState = DEVICE_STATE_SLEEP; - // Schedule next packet transmission - TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime ); - TimerStart( &TxNextPacketTimer ); - break; + case DEVICE_STATE_SLEEP: + { + // Wake up through events + break; + } + default: + { + DeviceState = DEVICE_STATE_INIT; + break; + } + } - case DEVICE_STATE_SLEEP: - { - - // Wake up through events - break; - } - default: - { - DeviceState = DEVICE_STATE_INIT; - break; - } - + } - break; + break; } case 1 : //bouton enclenché { SerialDisplayRTCactive(etat); saisie_serie(tabd); SerialDisplayTIME(tabd); + //chk_and_set_time(tabd); config_s=unix_timestamp(tabd); set_time(config_s); //printf( "%d\r\n",etat); @@ -933,4 +967,3 @@ } } -
--- a/app/unixtimestamp.cpp Wed Jan 23 16:28:51 2019 +0000 +++ b/app/unixtimestamp.cpp Wed Feb 06 19:16:44 2019 +0000 @@ -11,6 +11,35 @@ return seconde; } +/* +void chk_and_set_time(int date[6]) +{ + + struct tm t; + time_t seconds; + + + t.tm_year = date[5]; + + t.tm_mon = date[4]; + + t.tm_mday = date[3]; + + t.tm_hour = date[0]; + + t.tm_min = date[1]; + + t.tm_sec = date[2]; + + + seconds = mktime(&t); + set_time(seconds); + printf( + "Date: %04d/%02d/%02d, %02d:%02d:%02d\r\n", + t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec + ); +}*/ + int bissextile (int an) { int bi = 0;
--- a/app/unixtimestamp.h Wed Jan 23 16:28:51 2019 +0000 +++ b/app/unixtimestamp.h Wed Feb 06 19:16:44 2019 +0000 @@ -13,6 +13,7 @@ int an_to_s (int an); void Whex_buffer(int deb,int tab[8]); void saisie_serie(int tab[6]); +//void chk_and_set_time(int date[6]); #endif \ No newline at end of file