#include "util.h"

//deklaracja nazw kolejnych parametrów w strukturze JSON
typedef struct {                        //struktura ustawionych parametrów:
                 String nazwa;          //nazwa parametru JSON
               } NAZWA;

NAZWA nazwy[13]={{"nap"},{"hap"},{"ipkl"},{"ipbr"},{"nws"},{"hws"},{"nnad"},{"hnad"},{"nsmtp"},{"port"},{"ndoc"},{"temat"},{"mczas"}};         
#define il_parametrow 13    //wstaw liczbę parametrów Json

/* -------------------------------------------------------
 *  Utworzenie odpowiedzi na ustawienie wyjscia cyfrowego
 * -------------------------------------------------------
 */
String odp_para()   //{"sukces":"1"}  
{ 
  String json= "{\"sukces\":\"1\"}";
  return json;
}

/* --------------------------------------------------------
 *  Utworzenie odpowiedzi zawierajacej ustawienia setupu
 * --------------------------------------------------------
 */
String odp_setup()
{  /*  {"nap":"par.ap_ssid","hap":"par.ap_haslo","ipkl":"par.ip_klient","ipbr":"par.ip_brama","nws":"par.wb_ssid",
         "hws":"par.wb_haslo","nnad":"par.n_nadaw","hnad":"par.h_nadaw","nsmtp":"par.n_smtp","port":"par.nr_port",
         "ndoc":"par.n_docel","temat":"par.temat","mczas":"par.min_czas"} */
  String json= "{\"" + nazwy[0].nazwa + "\":\"" +  parametry.ap_ssid +   "\",";   //SSID AP istniejącej sieci, 20 zn,
         json+= "\"" + nazwy[1].nazwa + "\":\"" +  parametry.ap_haslo +  "\",";   //haslo AP istniejącej sieci, 20 zn,
         json+= "\"" + nazwy[2].nazwa + "\":\"" +  parametry.ip_klient + "\",";   //static IP klienta w istniejącej sieci, 15 zn,
         json+= "\"" + nazwy[3].nazwa + "\":\"" +  parametry.ip_brama +  "\",";   //getaway IP w istniejącej sieci, 15 zn,
         json+= "\"" + nazwy[4].nazwa + "\":\"" +  parametry.wb_ssid +   "\",";   //SSID WebServera ustawień, 20 zn,
         json+= "\"" + nazwy[5].nazwa + "\":\"" +  parametry.wb_haslo +  "\",";   //hasło do WebServera ustawień, 20 zn,
         json+= "\"" + nazwy[6].nazwa + "\":\"" +  parametry.n_nadaw +   "\",";   //nazwa skrzynki nadawczej, 20 zn,
         json+= "\"" + nazwy[7].nazwa + "\":\"" +  parametry.h_nadaw +   "\",";   //hasło skrz. nadawczej, 20 zn,
         json+= "\"" + nazwy[8].nazwa + "\":\"" +  parametry.n_smtp +    "\",";   //nazwa serwera smtp, 20 zn.
         json+= "\"" + nazwy[9].nazwa + "\":\"" +  parametry.nr_port +   "\",";   //nr portu serwera smtp, 3 zn.
         json+= "\"" + nazwy[10].nazwa + "\":\"" + parametry.n_docel +   "\",";   //nazwa skrz. docelowej, 20 zn.
         json+= "\"" + nazwy[11].nazwa + "\":\"" + parametry.temat +     "\",";   //temat wiadomosci e-mail, 20 zn.
         json+= "\"" + nazwy[12].nazwa + "\":\"" + parametry.min_czas +  "\"}";   //minimalny czas między e-mailami, 2 zn.
  return json;
}

/* ----------------------------------------------------------------------------------------
 *  Modyfikacja parametru w tablicy parametry wg otrzymanych danych w strukturze JSON
 * ----------------------------------------------------------------------------------------
 */ 
void aktualizuj_par(int nr, String in_naz, String in_par)
{
  switch (nr)
  {                                           //dla bezpieczeństwa sprawdzanie zgodnosci nazw parametrów JSON
    case 0:
      if (in_naz==nazwy[nr].nazwa)            //nap
         parametry.ap_ssid=in_par;
      break;
    case 1:
      if (in_naz==nazwy[nr].nazwa)            //hap
        parametry.ap_haslo=in_par;
      break;
    case 2:
      if (in_naz==nazwy[nr].nazwa)            //ipkl
        parametry.ip_klient=in_par;
      break;
    case 3:
      if (in_naz==nazwy[nr].nazwa)            //ipbr
        parametry.ip_brama=in_par;
      break;
    case 4:
      if (in_naz==nazwy[nr].nazwa)            //nws
        parametry.wb_ssid=in_par;
      break;
    case 5:
      if (in_naz==nazwy[nr].nazwa)            //hws
        parametry.wb_haslo=in_par;
      break;
    case 6:
      if (in_naz==nazwy[nr].nazwa)            //nnad
        parametry.n_nadaw=in_par;
      break;
    case 7:
      if (in_naz==nazwy[nr].nazwa)            //hnad
        parametry.h_nadaw=in_par;
      break;
    case 8:
      if (in_naz==nazwy[nr].nazwa)            //nsmtp
        parametry.n_smtp=in_par;
      break;
    case 9:
      if (in_naz==nazwy[nr].nazwa)            //port
        parametry.nr_port=in_par;
      break;
    case 10:
      if (in_naz==nazwy[nr].nazwa)            //ndoc
        parametry.n_docel=in_par;
      break;
    case 11:
      if (in_naz==nazwy[nr].nazwa)            //temat
        parametry.temat=in_par;
      break;
    case 12:
      if (in_naz==nazwy[nr].nazwa)            //mczas
        parametry.min_czas=in_par;
      break;
  }
}
