Files
eqn.ios/Sources/Earthquake Network/Costanti.h
T
2025-03-06 15:49:26 +01:00

173 lines
7.5 KiB
C

//
// Costanti.h
// Earthquake Network
//
// Created by Luca Beretta on 14/09/18.
// Copyright © 2018 Luca Beretta. All rights reserved.
//
#ifndef Costanti_h
#define Costanti_h
#pragma mark - Debug
/// Stampa le risposte delle chiamate al server
static BOOL const EQNDebugPrintResponse = NO;
/// Visualizza schermata con info di debug (ex. push token)
static BOOL const EQNEnableDebugView = NO;
#pragma mark - Urls
static NSString * const EQNWebsiteAddress = @"https://www.sismo.app";
static NSString * const EQNTwitterProfileUrl = @"https://twitter.com/SismoDetector";
static NSString * const EQNAppStoreUrl = @"https://itunes.apple.com/app/id1449893235?mt=8";
static NSString * const EQNTelegramUrl = @"https://www.telegram.me/eqn_realtime";
#pragma mark - Math Constants
/// Costante gravitazionale
static double const EQNMathGravitational = 9.81;
/// Costante conversione gradi Celsius/Kelvin
static double const EQNMathKelvin = 273.15;
#pragma mark - Server APIs
/// Download reti sismiche
static NSString * const EQNServerUrlDownloadRetiSismiche = @"https://cache.earthquakenetwork.it/distquake_download_automatic21.php%@";
/// Recupera il tempo ancora disponibile per la versione Pro scontata
static NSString * const EQNServerUrlOfferTimeRemaining = @"https://srv.earthquakenetwork.it/distquake_download_offer_time_remaining.php";
/// Registra l'abbonamento acquistato dall'utente
static NSString * const EQNServerUrlRegisterSubscription = @"https://srv.earthquakenetwork.it/distquake_upload_subscription.php";
/// Carica le impostazioni delle notifiche definite dall'utente
static NSString * const EQNServerUrlUploadSettings = @"https://srv.earthquakenetwork.it/distquake_upload_settings_ios.php";
// URL EQNTipoChiamataRegistrazione server
static NSString * const EQNServerUrlRegistration = @"https://srv.earthquakenetwork.it/distquake_upload_gcm_regid2.php";
// URL posizione server
static NSString * const EQNServerUrlUserLocation = @"https://srv.earthquakenetwork.it/distquake_upload_gcm_latlon.php";
static NSString * const EQNServerUrlCalibration = @"https://srv.earthquakenetwork.it/distquake_upload4.php";
// download rete smartphone
static NSString * const EQNServerUrlDownloadSmartphoneNetwork = @"https://cache.earthquakenetwork.it/distquake_count_redis3.php";
// download area check
static NSString * const EQNServerUrlDownloadAreaCheck = @"https://srv.earthquakenetwork.it/distquake_download_areacheck.php";
// download pastquakes
static NSString * const EQNServerUrlDownloadPastQuakes = @"https://srv.earthquakenetwork.it/distquake_download_pastquakes.php";
// download segnalazioni
static NSString * const EQNServerUrlDownloadUserReports = @"https://cache.earthquakenetwork.it/distquake_download_manual3.php";
// Invio segnalazione
static NSString * const EQNServerUrlSendUserReport = @"https://srv.earthquakenetwork.it/distquake_upload_manual4.php";
static NSString * const EQNServerUrlSendUserReportMessage = @"https://srv.earthquakenetwork.it/distquake_upload_manual_message.php";
/// Effettua un test delle notifiche push
static NSString * const EQNServerUrlTestAlarm = @"https://srv.earthquakenetwork.it/distquake_upload_testalarm.php";
/// Simulatore per calcolo pre-allerta
static NSString * const EQNServerUrlAlertSimulator = @"https://srv.earthquakenetwork.it/distquake_download_alertposition.php";
#pragma mark - UserDefaults Keys
static NSString * const EQNUserDefaultSeismicNetworkCards = @"EQNData.RetiSismiche";
#pragma mark - NSNotification
/// Notifica di fallimento registrazione al server (user_id non ricavato)
static NSNotificationName const EQNServerRegistrationDidFailNotification = @"EQNServerRegistrationDidFailNotification";
/// Notifica di cambio stato permesso di localizzazione
static NSNotificationName const EQNAuthorizationStatusDidChangeNotification = @"EQNAuthorizationStatusDidChangeNotification";
/// Notifica di completamento download dei dati
static NSNotificationName const EQNDownloadDataDidCompleteNotification = @"EQNDownloadDataDidCompleteNotification";
/// Notifica di acquisto in-app effettuato
static NSNotificationName const EQNInAppPurchaseDidCompleteNotification = @"EQNInAppPurchaseDidCompleteNotification";
/// Notifica di acquisto in-app fallito
static NSNotificationName const EQNInAppPurchaseDidFailNotification = @"EQNInAppPurchaseDidFailNotification";
/// Notifica di nessun acquisto trovato
static NSNotificationName const EQNInAppPurchaseNoTransactionsNotification = @"EQNInAppPurchaseNoTransactionsNotification";
/// Notifica per aggiornare i log di debug
static NSNotificationName const EQNDebugLogWillUpdateNotification = @"EQNDebugLogWillUpdateNotification";
#pragma mark - Other constants
static NSTimeInterval const EQNSeismicDataRefreshInterval = 120.0;
/// Tempo di attesa (secondi) tra l'invio di due segnalazioni
static NSTimeInterval const EQNSendReportDelayBetweenMessages = 300.0; // 5 minuti
/// Tempo di attesa (secondi) per l'invio di due commenti
static NSTimeInterval const EQNSendReportDelayBetweenComments = 900.0; // 30 minuti
#ifdef DEBUG
static NSString * const EQNAdMobAppIdAdaptiveBanner = @"ca-app-pub-3940256099942544/2934735716"; // test
static NSString * const EQNAdMobAppIdNativeBanner = @"ca-app-pub-0053870219990922/6195421224";
#else
static NSString * const EQNAdMobAppIdAdaptiveBanner = @"ca-app-pub-0053870219990922/3394298808";
static NSString * const EQNAdMobAppIdNativeBanner = @"ca-app-pub-0053870219990922/6195421224";
#endif
#define MESSAGGIO @"MESSAGGIO_ERRORE"
/// Sections inside the app
typedef NS_ENUM(NSInteger, EQNTipoChiamata) {
EQNTipoChiamataRegistrazione = 0,
EQNTipoChiamataPosizione,
EQNTipoChiamataCalibrazione,
EQNTipoChiamataRilevamento,
EQNTipoChiamataDownloadDati,
EQNTipoChiamataAreaCheck,
EQNTipoChiamataPastquakes,
EQNTipoChiamataUtentiDisponibili,
EQNTipoChiamataTempoDisponibile,
EQNTipoChiamataSegnalazioneManuale,
EQNTipoChiamataTsunami,
EQNTipoChiamataSegnalazioneTerremoto,
EQNTipoChiamataCommentoTerremoto,
EQNTipoChiamataImpostazioniNotifiche,
EQNTipoChiamataOfferTimeRemaining,
EQNTipoChiamataRegisterSubscription,
EQNTipoChiamataAlertPushTest,
EQNTipoChiamataAlertSimulator
};
// chiavi rMax e rMin
#define rMax @"rMax"
#define rMin @"rMin"
// costante frequenza campionamento accelerometro
#define kUpdateInterval (1.0f / 100.0f)
// costante distanza posizione per avviare la segnalazone
#define DISTANZA_METRI_SEGNALAZIONE 8000
#define TEMPO_AGGIORNAMENTO_POSIZIONE 5400
//////////////////////////////////////// RILEVAMENTO ////////////////////////////////////////
// secondi durata rilevamento
#define SECONDI_RILIEVO 3
// Soglia deviazione standard se superata lo stato del rilievo è positivo altrimenti negativo
#define SOGLIA_DEVIAZIONE_RILIEVO 1.8
// stato rilievo
// il parametro viene inviato al server e_t1
typedef NS_ENUM(NSInteger, EQNRilevamentoSoglia) {
EQNRilevamentoSogliaNegativo = 0,
EQNRilevamentoSogliaPositivo
};
//////////////////////////////////////// CALIBRAZIONE ////////////////////////////////////////
// secondi durata calibrazione
#define SECONDI_CALIBRAZIONE 120
#define TEMPO_LATENZA_CALIBRAZIONE 120
#define TEMPO_RIPETIZIONE_CALIBRAZIONE 1800
// soglia valore che il valore massimo r non deve superare
#define SOGLIAMAX 0.2
// soglia valore che il valore minimo r non deve superare
#define SOGLIAMIN -0.2
// stato calibrazione
// il parametro viene inviato al server e_t
typedef enum : NSInteger {
calibrato = 0,
nonCalibrato
} EQNStatoCal;
// Sigla della rete sismica selezionata
#define IMPOSTAZIONE_NAZIONE_RETI_SISMICHE @"IMPOSTAIONE_NAZIONE_RETI_SISMICHE"
#endif /* Costanti_h */