import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.VirtualKeyboard 2.4 import QtQuick.VirtualKeyboard.Settings 2.2 import qt.koriolan.shipheart 1.0 ApplicationWindow { id: root //=============================================================================================================================== // Propriétés statiques : //=============================================================================================================================== //----------------------------------------------------------------------------------- // Générations de ShipBase : readonly property int shipheart_generation_shipbase_inconnue: 0 readonly property int shipheart_generation_shipbase_v1: 1 readonly property int shipheart_generation_shipbase_v2: 2 readonly property int shipheart_generation_shipbase_v3: 3 //----------------------------------------------------------------------------------- // Thèmes : readonly property int shipheart_index_theme_nom: 0 readonly property int shipheart_index_theme_fichier_fond_ecran: 1 readonly property int shipheart_index_theme_couleur_fond_ecran: 2 readonly property int shipheart_index_theme_couleur_fond_bouton: 3 readonly property int shipheart_index_theme_couleur_fond_bouton_actif: 4 readonly property int shipheart_index_theme_couleur_texte_titre_1: 5 readonly property int shipheart_index_theme_couleur_texte_titre_2: 6 readonly property int shipheart_index_theme_couleur_texte_titre_3: 7 readonly property int shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0: 8 readonly property int shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1: 9 readonly property int shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2: 10 readonly property int shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0: 11 readonly property int shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1: 12 readonly property int shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2: 13 readonly property int shipheart_index_theme_couleur_texte_slider: 14 readonly property int shipheart_index_theme_couleur_bordure_courbes: 15 readonly property variant shipheart_config_themes: [ //-------------------------------------------- // Theme = 0: [ qsTr("Original"), // shipheart_index_theme_nom "/images/fibre_carbone.png", // shipheart_index_theme_fichier_fond_ecran "transparent", // shipheart_index_theme_couleur_fond_ecran couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 1: [ qsTr("Sombre"), "", couleur_noir, couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 2: [ qsTr("Métallique"), "/images/fond_2.jpg", "transparent", couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 3: [ qsTr("Triangles"), "/images/fond_3.jpg", "transparent", couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 4: [ qsTr("Sable"), "", couleur_noir, couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_sable_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_sable_transparent, // shipheart_index_theme_couleur_texte_titre_1 couleur_sable, // shipheart_index_theme_couleur_texte_titre_2 couleur_sable_transparent, // shipheart_index_theme_couleur_texte_titre_3 couleur_sable, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_sable, // shipheart_couleur_texte_slider couleur_sable // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 5: [ qsTr("Thème 5"), "", couleur_bleu_koriolan_transparent, couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 6: [ qsTr("Thème 6"), "", couleur_gris_pale, couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_sable_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 7: [ qsTr("Thème 7"), "", "#2F076A", couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ], //-------------------------------------------- // Theme = 8: [ qsTr("Thème 8"), "", "#5B1297", couleur_gris_tres_fonce_transparent, // shipheart_index_theme_couleur_fond_bouton couleur_bleu_koriolan_transparent, // shipheart_index_theme_couleur_fond_bouton_actif couleur_gris_fonce, // shipheart_index_theme_couleur_texte_titre_1 couleur_bleu_koriolan, // shipheart_index_theme_couleur_texte_titre_2 couleur_gris_pale, // shipheart_index_theme_couleur_texte_titre_3 couleur_bleu_koriolan, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_0 couleur_orange, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_1 couleur_rouge, // shipheart_index_theme_couleur_fond_boite_dialogue_niveau_2 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_0 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_1 couleur_blanc_casse, // shipheart_index_theme_couleur_texte_boite_dialogue_niveau_2 couleur_bleu_koriolan, // shipheart_couleur_texte_slider couleur_bleu_koriolan // shipheart_index_theme_couleur_bordure_courbes ] ]; //----------------------------------------------------------------------------------- // Type d'installation : readonly property int shipheart_type_installation_shipbase : 0 readonly property int shipheart_type_installation_ecran_deporte : 1 readonly property int shipheart_type_installation_ecran_deporte_7_pouces : 17 readonly property int shipheart_type_installation_ecran_deporte_10_pouces : 110 readonly property int shipheart_type_installation_ecran_deporte_22_pouces : 122 //----------------------------------------------------------------------------------- // Spécificités clients : readonly property int shipheart_specifique_client_tous : 0 readonly property int shipheart_specifique_client_suncy : 1 readonly property int shipheart_specifique_client_o_yachts : 2 //----------------------------------------------------------------------------------- // Types de source : readonly property int shipheart_type_source_inconnu : 0 readonly property int shipheart_type_source_circuits : 1 readonly property int shipheart_type_source_capteurs: 2 readonly property int shipheart_type_source_reservoirs: 3 readonly property int shipheart_type_source_batteries: 4 readonly property int shipheart_type_source_modules: 5 readonly property int shipheart_type_source_events: 6 //----------------------------------------------------------------------------------- // Types de page : readonly property int shipheart_type_page_inconnu : 0 readonly property int shipheart_type_page_preconfiguree_ephemeride : 1 readonly property int shipheart_type_page_preconfiguree_chronometre : 2 readonly property int shipheart_type_page_personnalisee_minuteur : 3 readonly property int shipheart_type_page_preconfiguree_reveil : 4 readonly property int shipheart_type_page_personnalisee_non_masquable : 10 readonly property int shipheart_type_page_personnalisee_masquable : 11 //----------------------------------------------------------------------------------- // Paramètres d'une page personnalisée : readonly property int shipheart_page_personnalisee_nb_max_points : 30 readonly property variant shipheart_page_personnalisee_type_point_icones : [ //-------------------------------------------- // Type_source = 0 = Système [], //-------------------------------------------- // Type_source = 1 = Circuits: [ "point_transparent.png", // Attention : rang #0 = icone utilisée pour circuit OFF... "point_blanc.png", "point_rouge.png", "point_vert.png", "point_bleu.png", "point_jaune.png", "point_orange.png", "point_arc_en_ciel.png" ], //-------------------------------------------- // Type_source = 2 = Capteurs: [ "icone_barometre.png", "icone_humidite.png", "icone_consommation_electrique.png", "icone_temperature.png", "vanne.png", "vanne_ouverte.png", "vanne_fermee.png", "satellite.png" ], //-------------------------------------------- // Type_source = 3 = Reservoirs: [ "reservoir.png", "reservoir_eau.png" ], //-------------------------------------------- // Type_source = 4 = Batteries: [ "batterie_moyen.png" ], //-------------------------------------------- // Type_source = 5 = Modules: [ "shipbase.png", // Attention : dans l'ordre du 'Types de modules' ci-dessous ! "sp8dc.png", // Par approximation, on met une image de 8DC... "shipbs.png", "sp4ac.png", "sp8dc.png" ], ] //----------------------------------------------------------------------------------- // Langues : readonly property int shipheart_langue_fr: 0 readonly property int shipheart_langue_en: 1 readonly property int shipheart_langue_de: 2 readonly property int shipheart_langue_es: 3 readonly property int shipheart_langue_pt: 4 readonly property int shipheart_langue_nl: 5 readonly property int shipheart_langue_it: 6 readonly property int shipheart_langue_lv: 7 readonly property int shipheart_langue_ca: 8 //----------------------------------------------------------------------------------- // Types unité : // Cf aussi 'fonctions.js' et 'shipheart.h' en cas de modifications/ajouts readonly property int shipheart_type_unite_volume: 1 readonly property int shipheart_type_unite_temperature: 2 readonly property int shipheart_type_unite_latitude: 3 readonly property int shipheart_type_unite_longitude: 4 // Unités volume : // Cf aussi 'fonctions.js' et 'shipheart.h' en cas de modifications/ajouts readonly property int shipheart_unite_volume_litres: 0 readonly property int shipheart_unite_volume_us_gallons: 1 readonly property int shipheart_unite_volume_imp_gallons: 2 // Unités température : // Cf aussi 'fonctions.js' et 'shipheart.h' en cas de modifications/ajouts readonly property int shipheart_unite_temperature_celsius: 0 readonly property int shipheart_unite_temperature_fahrehneit: 1 //----------------------------------------------------------------------------------- // Localisation des fichiers : readonly property string shipheart_repertoire_versions_a_charger: "/home/koriolan/shipheart/versions/a_charger" readonly property string shipheart_repertoire_versions_a_valider: "/home/koriolan/shipheart/versions/a_valider" readonly property string shipheart_repertoire_versions_current: "/home/koriolan/shipheart/versions/current" readonly property string shipheart_repertoire_config: "/home/koriolan/shipheart/config" readonly property string shipheart_repertoire_cle_usb: "/home/koriolan/cle_usb" readonly property string shipheart_repertoire_tmp_usb: "/home/koriolan/shipheart/tmp/usb" readonly property string shipheart_repertoire_sys_usb: "/sys/kernel/debug/usb" readonly property string shipheart_repertoire_utils: "/home/koriolan/shipheart/utils" readonly property string shipheart_sous_repertoire_rapports: "/rapports" readonly property string shipheart_sous_repertoire_images_accueil: "/images_accueil" readonly property string shipheart_sous_repertoire_sauvegardes: "/sauvegardes" readonly property string shipheart_sous_repertoire_images_silhouette: "/images_silhouette" readonly property string shipheart_nom_complet_fichier_shiprs_conf: "/home/koriolan/shipheart/versions/shiprs.conf" readonly property string shipheart_nom_fichier_image_accueil_par_defaut: "logo_shipheart.png" readonly property string shipheart_nom_fichier_rapport_installation: "rapport_installation.php" readonly property string shipheart_nom_fichier_sauvegarde: "sauvegarde.php" readonly property string shipheart_nom_fichier_usb_devices: "devices" readonly property string shipheart_nom_fichier_usb_lsblk: "resultat_lsblk" readonly property string shipheart_nom_fichier_usb_ls: "resultat_ls" //----------------------------------------------------------------------------------- // Modes de fonctionnement du menu 'config_fichiers' : readonly property int shipheart_mode_config_fichiers_inconnu: 0 readonly property int shipheart_mode_config_fichiers_image_accueil: 1 readonly property int shipheart_mode_config_fichiers_silhouette: 2 readonly property int shipheart_mode_config_fichiers_rapports: 3 readonly property int shipheart_mode_config_fichiers_sauvegardes: 4 readonly property int shipheart_taille_maxi_image_accueil: (5 * 1000 * 1000) // En octets readonly property int shipheart_taille_maxi_silhouette: (2 * 1000 * 1000) // En octets readonly property int shipheart_taille_maxi_rapport: (50 * 1000 * 1000) // En octets readonly property int shipheart_taille_maxi_sauvegarde: (50 * 1000 * 1000) // En octets //----------------------------------------------------------------------------------- // Gestion des fichiers de mise à jour : readonly property int shipheart_demande_maj_soft_aucune: 0 // Valeur de repos readonly property int shipheart_demande_maj_soft_validation: 1 // Validation du fichier dans A_VALIDER qui sera copié dans A_CHARGER readonly property int shipheart_demande_maj_soft_chargement: 2 // Idem VALIDATION + demande de reset pour prise en compte immédiate readonly property int shipheart_demande_maj_soft_annulation: -1 // Suppression du fichier présent dans A_VALIDER ou dans A_CHARGER (les 2 sont vidés) //----------------------------------------------------------------------------------- // Modules : readonly property int shipheart_max_nombre_modules: (32+1) // Types de modules : // Cf aussi 'fonctions.js' en cas de modifications/ajouts readonly property int shipheart_type_module_inconnu: -1 readonly property int shipheart_type_module_shipbase: 0 readonly property int shipheart_type_module_shippower812: 1 readonly property int shipheart_type_module_shipBS: 2 readonly property int shipheart_type_module_shippower4AC: 3 readonly property int shipheart_type_module_shippower8DC: 4 // Etat commande d'une carte : readonly property int shipheart_etat_commande_module_ok: 0 readonly property int shipheart_etat_commande_module_undervoltage: 1 readonly property int shipheart_etat_commande_module_test: 2 // Code commande d'une carte : readonly property int shipheart_commande_module_localisation: 1 readonly property int shipheart_commande_module_etat_systeme: 2 readonly property int shipheart_commande_module_etat_systeme_normal: 0 readonly property int shipheart_commande_module_etat_systeme_alerte: 1 readonly property int shipheart_commande_module_etat_systeme_alarme: 2 //----------------------------------------------------------------------------------- // Historique types : readonly property int shipheart_historique_type_tous: -1 readonly property int shipheart_historique_type_systeme: 0 readonly property int shipheart_historique_type_circuits: 1 readonly property int shipheart_historique_type_capteurs: 2 readonly property int shipheart_historique_type_reservoirs: 3 readonly property int shipheart_historique_type_batteries: 4 readonly property int shipheart_historique_type_usb: 5 readonly property int shipheart_historique_type_event: 6 //----------------------------------------------------------------------------------- // Messages users : readonly property int shipheart_message_users_code_aucun: 0 readonly property int shipheart_message_users_code_fin_minuteur: 1 readonly property int shipheart_message_users_code_reveil: 2 readonly property int shipheart_message_users_code_maj_en_cours: 3 readonly property int shipheart_message_users_code_redemarrage: 4 readonly property int shipheart_message_users_code_nouvelle_version_detectee: 5 readonly property int shipheart_message_users_code_defaut_config_k_bus: 6 readonly property int shipheart_message_users_code_declenchement_event: 7 //----------------------------------------------------------------------------------- // Protection d'accès : readonly property string code_koriolan: "87cf9a09f9889c4c9d2d9e30cfb6dfe6f238ef7f2db16cd5ea3ebfcd2c90b9b9" readonly property int shipheart_type_code_normal: 0 readonly property int shipheart_type_code_admin: 1 readonly property int shipheart_niveau_acces_aucun: 0 readonly property int shipheart_niveau_acces_user: 1 readonly property int shipheart_niveau_acces_admin: 10 readonly property int shipheart_niveau_acces_koriolan: 20 //----------------------------------------------------------------------------------- // Types de synchro de BDD : readonly property int shipheart_type_synchro_aucune : 0 readonly property int shipheart_type_synchro_data : 1 readonly property int shipheart_type_synchro_config : 2 //----------------------------------------------------------------------------------- // Timings système : readonly property int shipheart_periode_timer_home: 1000 //----------------------------------------------------------------------------------- // Ports USB : readonly property int shipheart_port_usb_aucun: -1 readonly property int shipheart_port_usb_arriere: 0 // Connecteur USB-A à l'arrière readonly property int shipheart_port_usb_spare: 1 // Sortie sur 4 broches à souder au pas de 2.54mm readonly property int shipheart_port_usb_avant_bas: 2 // Connecteur USB-A à l'avant, en partie basse de la colonne des 3 ports en face avant readonly property int shipheart_port_usb_touchpad: 3 // Connecteur pour cable plat sur carte Shipbase, vers l'écran Densitron. //----------------------------------------------------------------------------------- // Entrées Auxiliaires : readonly property int shipheart_entrees_aux_max_nombre: 32 //----------------------------------------------------------------------------------- // Entrées Level Sensor : readonly property int shipheart_entrees_level_sensor_max_nombre: 8 //----------------------------------------------------------------------------------- // Entrées Volt : readonly property int shipheart_entrees_volt_max_nombre: 4 //----------------------------------------------------------------------------------- // Events : readonly property int shipheart_max_nombre_events: 200 // Cf 'event.h' dans l'appli readonly property int shipheart_max_nombre_conditions_horaires_par_event: 15 // Cf 'event.h' dans l'appli readonly property int shipheart_max_nombre_action_circuits_par_event: 50 // Cf 'event.h' dans l'appli // Heures spéciales : readonly property int shipheart_heure_speciale_fin_nuit: 24 // -18° de l'horizon readonly property int shipheart_heure_speciale_aube_nautique: 25 // -12° de l'horizon readonly property int shipheart_heure_speciale_aube: 26 // -6° de l'horizon readonly property int shipheart_heure_speciale_lever_soleil: 27 // -0.833° de l'horizon readonly property int shipheart_heure_speciale_zenith: 28 readonly property int shipheart_heure_speciale_coucher_soleil: 29 // -0.833° de l'horizon readonly property int shipheart_heure_speciale_crepuscule: 30 // -6° de l'horizon readonly property int shipheart_heure_speciale_crepuscule_nautique: 31 // -12° de l'horizon readonly property int shipheart_heure_speciale_debut_nuit: 32 // -18° de l'horizon //----------------------------------------------------------------------------------- // Mesures : // Type mesure : // Cf aussi 'fonctions.js' et 'shipheart.h' en cas de modifications/ajouts readonly property int shipheart_source_mesure_circuit: 1 readonly property int shipheart_source_mesure_capteur: 2 readonly property int shipheart_source_mesure_reservoir: 3 readonly property int shipheart_source_mesure_batterie: 4 // Modes enregistrement mesures : readonly property int shipheart_mode_enregistrement_mesures_aucun: 0 readonly property int shipheart_mode_enregistrement_mesures_periodique: 1 readonly property int shipheart_mode_enregistrement_mesures_changement_etat: 2 //----------------------------------------------------------------------------------- // Divers : readonly property string shipheart_adresse_ip_inconnue: "inconnue" // Valeur identique à ADRESSE_IP_INCONNUE dans l'appli, dans 'systeme.h' //----------------------------------------------------------------------------------- // Couleurs prédéfinies : readonly property color couleur_bleu_koriolan: Qt.rgba((0/255), (118/255), (154/255), 1.0) readonly property color couleur_bleu_koriolan_transparent: Qt.rgba((0/255), (118/255), (154/255), 0.4) readonly property color couleur_bleu_koriolan_tres_transparent: Qt.rgba((0/255), (118/255), (154/255), 0.2) readonly property color couleur_bleu_koriolan_tres_tres_transparent: Qt.rgba((0/255), (118/255), (154/255), 0.1) readonly property color couleur_bleu_koriolan_clair: Qt.rgba((113/255), (187/255), (216/255), 1.0) readonly property color couleur_bleu_koriolan_clair_transparent: Qt.rgba((113/255), (187/255), (216/255), 0.4) readonly property color couleur_bleu_koriolan_clair_tres_transparent: Qt.rgba((113/255), (187/255), (216/255), 0.2) readonly property color couleur_noir: Qt.rgba((0/255), (0/255), (0/255), 1.0) readonly property color couleur_gris_tres_tres_fonce: Qt.rgba((10/255), (10/255), (10/255), 1.0) readonly property color couleur_gris_tres_tres_fonce_transparent: Qt.rgba((10/255), (10/255), (10/255), 0.9) readonly property color couleur_gris_tres_tres_fonce_tres_transparent: Qt.rgba((10/255), (10/255), (10/255), 0.2) readonly property color couleur_gris_tres_fonce: Qt.rgba((60/255), (60/255), (60/255), 1.0) readonly property color couleur_gris_tres_fonce_transparent: Qt.rgba((60/255), (60/255), (60/255), 0.5) readonly property color couleur_gris_tres_fonce_tres_transparent: Qt.rgba((60/255), (60/255), (60/255), 0.2) readonly property color couleur_gris_fonce: Qt.rgba((80/255), (80/255), (80/255), 1.0) readonly property color couleur_gris_moyen: Qt.rgba((110/255), (110/255), (110/255), 1.0) readonly property color couleur_gris_pale: Qt.rgba((130/255), (130/255), (130/255), 1.0) readonly property color couleur_gris_tres_pale: Qt.rgba((150/255), (150/255), (150/255), 1.0) readonly property color couleur_gris_tres_pale_transparent: Qt.rgba((150/255), (150/255), (150/255), 0.2) readonly property color couleur_gris_tres_tres_pale: Qt.rgba((200/255), (200/255), (200/255), 1.0) readonly property color couleur_blanc_casse: Qt.rgba((230/255), (230/255), (230/255), 1.0) readonly property color couleur_blanc_casse_transparent: Qt.rgba((230/255), (230/255), (230/255), 0.5) readonly property color couleur_blanc: Qt.rgba(1, 1, 1, 1.0) readonly property color couleur_vert: Qt.rgba((177/255), (251/255), (23/255), 1.0) readonly property color couleur_vert_transparent: Qt.rgba((177/255), (251/255), (23/255), 0.4) readonly property color couleur_jaune: Qt.rgba((253/255), (240/255), (100/255), 1.0) readonly property color couleur_jaune_transparent: Qt.rgba((253/255), (240/255), (100/255), 0.4) readonly property color couleur_jaune_post_it: Qt.rgba((255/255), (195/255), (63/255), 1.0) readonly property color couleur_jaune_post_it_transparent: Qt.rgba((255/255), (195/255), (63/255), 0.4) readonly property color couleur_orange: Qt.rgba((255/255),(140/255), (0/255), 1.0) readonly property color couleur_orange_transparent: Qt.rgba((255/255),(140/255), (0/255), 0.4) readonly property color couleur_rouge: Qt.rgba((255/255), (30/255), (0/255), 1.0) readonly property color couleur_rouge_transparent: Qt.rgba((255/255), (30/255), (0/255), 0.4) readonly property color couleur_green_yellow: Qt.rgba((173/255), (255/255), (47/255), 1.0) readonly property color couleur_green_yellow_transparent: Qt.rgba((173/255), (255/255), (47/255), 0.4) readonly property color couleur_sable: Qt.rgba((205/255), (154/255), (124/255), 1.0) readonly property color couleur_sable_transparent: Qt.rgba((205/255), (154/255), (124/255), 0.4) readonly property color couleur_sable_tres_transparent: Qt.rgba((205/255), (154/255), (124/255), 0.2) // Boutons : readonly property int shipheart_rayon_bouton: 6 readonly property int shipheart_grand_rayon_bouton: 12 readonly property int shipheart_rayon_zoom: 20 readonly property int shipheart_mouse_press_and_hold_interval_tres_court: 5 // Utilisé comme léger filtrage readonly property int shipheart_mouse_press_and_hold_interval_court: 250 // Utilisé comme léger filtrage readonly property int shipheart_mouse_press_and_hold_interval_long: 1000 // Utilisé pour les commandes 'sensibles', comme la comm readonly property int shipheart_mouse_press_and_hold_interval_tres_long: 2000 // Utilisé pour valider par appui maintenu sur un "bouton défilant" // Mise en page : readonly property double bandeau_bas_spacing: 0.004 // pourcentage de la largeur de page utilisé pour séparer les boutons dans le bandeau bas. // Formulaires : readonly property int shipheart_formulaire_ligne_separation_haute: 1 readonly property int shipheart_formulaire_ligne_separation_basse: 2 readonly property int shipheart_formulaire_ligne_separation_haute_basse: 3 readonly property int shipheart_formulaire_ligne_separation_force_faible: 1 readonly property int shipheart_formulaire_ligne_separation_force_moyenne: 2 readonly property int shipheart_formulaire_ligne_separation_force_elevee: 3 readonly property string shipheart_font_saisie_textarea: "Noto Mono" // "Sans Serif" [Default], "URW Gothic L", "Nimbus Mono L" readonly property string shipheart_font_saisie_textfield: "Noto Mono" readonly property color shipheart_formulaire_couleur_texte_par_defaut: couleur_blanc_casse readonly property color shipheart_formulaire_couleur_texte_en_erreur: couleur_rouge // Boutons validation boite de dialogue : readonly property int shipheart_boite_dialogue_bouton_1: 1 // Souvent Ok readonly property int shipheart_boite_dialogue_bouton_2: 2 // Souvent Annuler readonly property int shipheart_boite_dialogue_bouton_3: 3 // Souvent Plus Tard ou Supprimer readonly property int shipheart_boite_dialogue_bouton_4: 4 // Souvent Bouton Sécurisé // Protection : readonly property int protection_mode_access_parametres_avances: 1 readonly property int protection_mode_verrouillage: 2 readonly property int protection_mode_deverrouillage: 3 // Courbes : readonly property color courbes_couleur_fond: couleur_bleu_koriolan_tres_transparent // Couleur intérieure des AreaSeries readonly property color courbes_couleur_shades_fond: couleur_gris_tres_tres_fonce_tres_transparent // Couleur des bandes verticales du fond (celles qui ne sont pas purement transparentes). readonly property int courbes_epaisseur_bordure: 4 // Epaisseur de la courbe elle-même readonly property int courbe_etalonnage_max_points: 12 // Max nb de points d'étalonnage (utilisé dans'config_valeur_niveau.qml' pour les batteries et les réservoirs) // Caractères spéciaux : readonly property int unicode_fleche_droite: 0x2192 // Utilisation du type 'String.fromCharCode(unicode_fleche_droite)' readonly property int unicode_fleche_demi_epaisse_continue_droite: 0x279E readonly property int unicode_fleche_demi_epaisse_discontinue_droite: 0x279F readonly property int unicode_fleche_epaisse_discontinue_droite: 0x27A0 readonly property int unicode_fleche_epaisse_continue_droite: 0x27A1 readonly property int unicode_omega: 0x2126 // Symbole des Ohms //----------------------------------------------------------------------------------- // Batteries : // Type d'entrées batteries : readonly property int shipheart_batteries_type_entrees_volt: 3 readonly property int shipheart_batteries_type_entrees_predefinie: 5 readonly property int shipheart_batteries_type_entrees_ibs: 6 // Types de variables : readonly property string shipheart_batterie_temperature: "Batt_temperature" readonly property string shipheart_batterie_tension: "Batt_tension" readonly property string shipheart_batterie_courant_differentiel: "Batt_courant_differentiel" readonly property string shipheart_batterie_courant_charge: "Batt_courant_charge" readonly property string shipheart_batterie_courant_decharge: "Batt_courant_decharge" readonly property string shipheart_batterie_soh: "Batt_soh" readonly property string shipheart_batterie_soc: "Batt_soc" readonly property string shipheart_batterie_autonomie: "Batt_autonomie" readonly property string shipheart_batterie_puissance: "Batt_puissance" readonly property string shipheart_batterie_energie: "Batt_energie" // Commande de batterie : readonly property int shipheart_batteries_commande_reserve: 0 readonly property int shipheart_batteries_commande_forcage_pleine_charge: 1 readonly property int shipheart_batteries_commande_reset_soh: 2 readonly property int shipheart_batteries_commande_reset_compteurs: 3 // Type de batterie : readonly property int shipheart_batteries_type_indefini: 0 readonly property int shipheart_batteries_type_plomb_acide_liquide: 1 readonly property int shipheart_batteries_type_plomb_agm_vrla: 2 readonly property int shipheart_batteries_type_plomb_gel: 3 readonly property int shipheart_batteries_type_plomb_carbone: 4 readonly property int shipheart_batteries_type_lihium: 10 //----------------------------------------------------------------------------------- // Capteurs : readonly property int shipheart_capteur_max_nombre_entrees_aux: 4 // Vérifier cohérence avec MAX_NOMBRE_ENTREES_PAR_CAPTEUR dans 'capteurs.h' de l'Appli. // Type d'entrées capteurs : readonly property int shipheart_capteur_type_entrees_aux: 1 readonly property int shipheart_capteur_type_entrees_level_sensor: 2 readonly property int shipheart_capteur_type_entrees_volt: 3 readonly property int shipheart_capteur_type_entrees_ow: 4 readonly property int shipheart_capteur_type_entrees_predefinie: 5 readonly property int shipheart_capteur_type_entrees_ibs: 6 readonly property int shipheart_capteur_type_entrees_nmea: 7 readonly property int shipheart_capteur_type_entrees_can: 8 readonly property int shipheart_capteur_type_entrees_calculee_booleen: 20 readonly property int shipheart_capteur_type_entrees_calculee_numerique: 21 // Modes des capteurs : readonly property int shipheart_capteur_mode_entrees_aux_normal: 0 readonly property int shipheart_capteur_mode_entrees_aux_inverse: 1 readonly property int shipheart_capteur_mode_entrees_level_sensor_non_defini: 0 readonly property int shipheart_capteur_mode_entrees_level_sensor_0_10v: 1 readonly property int shipheart_capteur_mode_entrees_level_sensor_500r: 2 readonly property int shipheart_capteur_mode_entrees_level_sensor_4_20ma: 3 readonly property int shipheart_capteur_mode_entrees_level_sensor_defaut_isolement_masse: 5 readonly property int shipheart_capteur_mode_entrees_level_sensor_defaut_isolement_v_plus: 6 readonly property int shipheart_capteur_mode_entrees_level_sensor_defaut_isolement_complet: 7 // Etat capteurs : readonly property int shipheart_capteur_etat_normal: 0 readonly property int shipheart_capteur_etat_alerte: 1 readonly property int shipheart_capteur_etat_alarme: 2 // Capteurs prédéfinis : readonly property int shipheart_capteur_predefini_aucun: 0 readonly property int shipheart_capteur_predefini_pat: 1 readonly property int shipheart_capteur_predefini_hum: 2 readonly property int shipheart_capteur_predefini_temp: 3 readonly property int shipheart_capteur_predefini_lat: 4 readonly property int shipheart_capteur_predefini_lon: 5 readonly property int shipheart_capteur_predefini_in_v: 6 readonly property int shipheart_capteur_predefini_in_i: 7 readonly property int shipheart_capteur_predefini_usb_i: 8 readonly property int shipheart_capteur_predefini_edm: 9 readonly property int shipheart_capteur_predefini_acc_xyz: 10 readonly property int shipheart_capteur_predefini_acc_x: 11 readonly property int shipheart_capteur_predefini_acc_y: 12 readonly property int shipheart_capteur_predefini_acc_z: 13 readonly property int shipheart_capteur_predefini_alt: 14 readonly property int shipheart_capteur_predefini_sog: 15 readonly property int shipheart_capteur_predefini_cog: 16 readonly property int shipheart_capteur_predefini_siv: 17 readonly property int shipheart_capteur_predefini_hpa: 18 readonly property int shipheart_capteur_predefini_vpa: 19 readonly property int shipheart_capteur_predefini_rsrp: 20 readonly property int shipheart_capteur_predefini_rssi: 21 readonly property int shipheart_capteur_predefini_sinr: 22 // Types de variables : readonly property string shipheart_capteur_sans_unite: "Capt_sans_unite" readonly property string shipheart_capteur_tension_v: "Capt_tension_v" readonly property string shipheart_capteur_tension_mv: "Capt_tension_mv" readonly property string shipheart_capteur_courant_a: "Capt_courant_a" readonly property string shipheart_capteur_courant_ma: "Capt_courant_ma" readonly property string shipheart_capteur_puissance_w: "Capt_puissance_w" readonly property string shipheart_capteur_puissance_va: "Capt_puissance_va" readonly property string shipheart_capteur_puissance_db: "Capt_puissance_db" readonly property string shipheart_capteur_frequence: "Capt_frequence" readonly property string shipheart_capteur_resistance: "Capt_resistance" readonly property string shipheart_capteur_temperature: "Capt_temperature" readonly property string shipheart_capteur_pression_atm: "Capt_pression_atm" readonly property string shipheart_capteur_humidite: "Capt_humidite" readonly property string shipheart_capteur_acceleration: "Capt_acceleration" readonly property string shipheart_capteur_position: "Capt_position" readonly property string shipheart_capteur_pourcentage: "Capt_pourcentage" readonly property string shipheart_capteur_distance_m: "Capt_distance_m" readonly property string shipheart_capteur_distance_km: "Capt_distance_km" readonly property string shipheart_capteur_distance_nq: "Capt_distance_nq" readonly property string shipheart_capteur_vitesse_kts: "Capt_vitesse_kts" readonly property string shipheart_capteur_vitesse_kmh: "Capt_vitesse_kmh" readonly property string shipheart_capteur_angle_degres: "Capt_angle_degres" readonly property string shipheart_capteur_latitude: "Capt_latitude" readonly property string shipheart_capteur_longitude: "Capt_longitude" readonly property string shipheart_capteur_volume: "Capt_volume" // Capteurs calculés : readonly property int shipheart_max_nombre_conditions_par_capteur: 50 // Cf 'capteurs.h' dans l'appli // Opération de condition : readonly property int shipheart_operation_condition_non_definie: 0 readonly property int shipheart_operation_condition_ou: 1 readonly property int shipheart_operation_condition_et: 2 readonly property int shipheart_operation_condition_ou_exclusif: 3 readonly property int shipheart_operation_condition_plus: 10 readonly property int shipheart_operation_condition_moins: 11 readonly property int shipheart_operation_condition_multiplie: 12 readonly property int shipheart_operation_condition_divise: 13 // Type de condition : readonly property int shipheart_type_condition_normale: 0 readonly property int shipheart_type_condition_debut_groupe_ou: shipheart_operation_condition_ou readonly property int shipheart_type_condition_debut_groupe_et: shipheart_operation_condition_et readonly property int shipheart_type_condition_debut_groupe_ou_exclusif: shipheart_operation_condition_ou_exclusif readonly property int shipheart_type_condition_debut_groupe_plus: shipheart_operation_condition_plus readonly property int shipheart_type_condition_debut_groupe_moins: shipheart_operation_condition_moins readonly property int shipheart_type_condition_debut_groupe_multiplie: shipheart_operation_condition_multiplie readonly property int shipheart_type_condition_debut_groupe_divise: shipheart_operation_condition_divise // NB : il existe les même valeurs en négatif pour fermer le groupe correspondant. // Tests : readonly property int shipheart_test_non_defini: 0 readonly property int shipheart_test_strictement_inferieur: 1 readonly property int shipheart_test_inferieur_ou_egal: 2 readonly property int shipheart_test_egal: 3 readonly property int shipheart_test_superieur_ou_egal: 4 readonly property int shipheart_test_strictement_superieur: 5 //----------------------------------------------------------------------------------- // Circuits : // Max : readonly property int shipheart_max_circuits_par_module_shipbase: 3 readonly property int shipheart_max_circuits_par_module_sp812: 8 readonly property int shipheart_max_circuits_par_module_sp8dc: 8 readonly property int shipheart_max_circuits_par_module_sp8xx: 8 // Valeur commune aux SP812 et aux SP8DC readonly property int shipheart_max_circuits_par_module_sp4ac: 4 readonly property double shipheart_max_courant_masses_sp8dc: 25.0 // En A (le max 'technique' est 25.5 car transféré en uint_8 vers les SP8DC readonly property double shipheart_plancher_intensite_circuit_shipbase: 0.05 // En dessous de cette valeur, l'intensité ne sera pas affichée readonly property double shipheart_plancher_intensite_circuit_sp8xx: 0.05 // En dessous de cette valeur, l'intensité ne sera pas affichée readonly property double shipheart_plancher_intensite_circuit_sp4ac: 0.5 // En dessous de cette valeur, l'intensité ne sera pas affichée // Mode commande des circuits : readonly property int shipheart_mode_commande_circuit_tor: 0 readonly property int shipheart_mode_commande_circuit_soft_tor: 1 readonly property int shipheart_mode_commande_circuit_soft_variable: 2 // Etat des circuits : readonly property int shipheart_etat_circuit_ok: 0 readonly property int shipheart_etat_circuit_limitation: 1 readonly property int shipheart_etat_circuit_protection: 2 readonly property int shipheart_etat_circuit_disjonte: 3 readonly property int shipheart_etat_circuit_cc_batterie: 4 readonly property int shipheart_etat_circuit_deleste: 5 readonly property int shipheart_etat_circuit_undervoltage: 6 readonly property int shipheart_etat_circuit_inversion_phase_neutre: 7 readonly property int shipheart_etat_circuit_absence_terre: 8 readonly property int shipheart_etat_circuit_absence_masse: 9 readonly property int shipheart_etat_circuit_inconnu: 99 // Types de variables : readonly property string shipheart_circuit_consigne: "Circ_consigne" readonly property string shipheart_circuit_tension: "Circ_tension" readonly property string shipheart_circuit_courant: "Circ_courant" readonly property string shipheart_circuit_frequence: "Circ_frequence" readonly property string shipheart_circuit_puissance: "Circ_puissance" readonly property string shipheart_circuit_energie: "Circ_energie" readonly property string shipheart_circuit_tension_secteur: "Circ_tension_secteur" //----------------------------------------------------------------------------------- // Réservoirs : readonly property int shipheart_reservoir_max_nombre_entrees_aux: 12 // Type d'entrées réservoir : readonly property int shipheart_reservoir_type_entrees_aux: 1 readonly property int shipheart_reservoir_type_entrees_level_sensor: 2 // Mode entrées réservoir : readonly property int shipheart_reservoir_mode_entrees_aux_normal: 0 readonly property int shipheart_reservoir_mode_entrees_aux_inverse: 1 readonly property int shipheart_reservoir_mode_entrees_level_sensor_0_10v: 1 readonly property int shipheart_reservoir_mode_entrees_level_sensor_500r: 2 readonly property int shipheart_reservoir_mode_entrees_level_sensor_4_20ma: 3 // Type_sonde réservoir : readonly property int shipheart_reservoir_mode_entrees_level_sensor_500r_0_500r: 0 readonly property int shipheart_reservoir_mode_entrees_level_sensor_500r_0_190r: 1 readonly property int shipheart_reservoir_mode_entrees_level_sensor_500r_240_30r: 2 // Types de variables : readonly property string shipheart_reservoir_niveau: "Res_niveau" //=============================================================================================================================== // Propriétés dynamiques : //=============================================================================================================================== property int shipheart_type_installation: shipheart_type_installation_shipbase property var shipheart_specifique_client // Tableau mis à jour avec 'TB_Configuration.Specifique_client' dans 'main.qml' via l'appel à 'init_shipheart_specifique_client()' dans initialItem de StackView ci-dessous property string shipheart_code_client: "" // Chaine contenant le code client 'TB_Configuration.Code_client' // Thèmes d'affichage : property string shipheart_fichier_image_accueil: "" // Fichier dans '/docs/image_accueil' à utiliser sur la page d'accueil (ou "" pour l'image par défaut) property int shipheart_theme: 0 // N° du thème à utiliser. Mis à jour au démarrage à partir de TB_Configuration.Theme. property string shipheart_theme_fichier_fond_ecran: "" // Le nom du fichier à utiliser comme fond d'écran property string shipheart_theme_couleur_fond_ecran: couleur_noir // Le nom (cf plus haut) de la couleur à utiliser en fond d'écran (ne fonctionne que si 'shipheart_theme_fichier_fond_ecran' est vide) property color shipheart_couleur_fond_bouton: couleur_gris_tres_fonce_transparent property color shipheart_couleur_fond_bouton_actif: couleur_bleu_koriolan_transparent property color shipheart_couleur_texte_titre_1: couleur_gris_fonce property color shipheart_couleur_texte_titre_2: couleur_bleu_koriolan property color shipheart_couleur_texte_titre_3: couleur_gris_pale property color shipheart_couleur_fond_boite_dialogue_niveau_0: couleur_bleu_koriolan property color shipheart_couleur_fond_boite_dialogue_niveau_1: couleur_orange property color shipheart_couleur_fond_boite_dialogue_niveau_2: couleur_rouge property color shipheart_couleur_texte_boite_dialogue_niveau_0: couleur_blanc_casse property color shipheart_couleur_texte_boite_dialogue_niveau_1: couleur_blanc_casse property color shipheart_couleur_texte_boite_dialogue_niveau_2: couleur_blanc_casse property color shipheart_couleur_texte_slider: couleur_bleu_koriolan property color shipheart_couleur_bordure_courbes: couleur_bleu_koriolan // Couleur de la courbe elle-même property int shipheart_generation_shipbase: shipheart_generation_shipbase_inconnue property int shipheart_defaut_config_k_bus: 0 // 0=normal, 1=défaut de config K-Bus vs modules réellement présents (mis à jour par Home en fonction du flag provenant de l'Appli) property int shipheart_fuseau_horaire: 0 // UTC par défaut property int shipheart_heure_ete: 0 // 0= hiver, 1= été property int shipheart_langue: 0 // Français par défaut property string shipheart_code_pays: "FR" // Français par défaut property string shipheart_code_langue: "fr_FR" // Français par défaut property int shipheart_unite_temperature: shipheart_unite_temperature_celsius // °C par défaut property string shipheart_unite_temperature_symbole: "°C" property int shipheart_unite_volume: shipheart_unite_volume_litres // Litres par défaut property string shipheart_unite_volume_symbole: "l" property int shipheart_time_out_economiseur: 0 // Image de TB_Configuration.Time_out_economiseur property string shipheart_bips: "" // Image de TB_Configuration.Bips. property double shipheart_latitude: 0 property double shipheart_longitude: 0 property string shipheart_heure_aube_nautique: "--:--" property string shipheart_heure_lever_soleil: "--:--" property string shipheart_heure_zenith: "--:--" property string shipheart_heure_coucher_soleil: "--:--" property string shipheart_heure_crepuscule_nautique: "--:--" property string shipheart_fichier_a_valider: ""; property string shipheart_fichier_a_charger: ""; property int shipheart_nb_fichiers_a_charger: 0; property int max_taille_code_pattern: 10 // Nb maxi de chiffres saisissable d'un code (attention : différent de Min_taille_code et Max_taille code de TB_Configuration). D'ailleurs, cette valeur est ajustée à Max_taille_code + 2 dans 'parametres.qml' et dans les pages spécifiques qui traitent la saisie de codes d'accès (ex : home_suncy.qml). property int shipheart_compteur_economiseur: 30 // Valeur décrémentée chaque seconde et réarmée à chaque interaction d'un utilisateur (valeur mise à jour avec 'TB_Configuration.Time_out_economiseur' à chaque 'reload_economiseur()' dans 'Shipheart_page.qml') property bool shipheart_flag_nettoyage_ecran_en_cours: false // Permet de passer l'info que le nettoyage est en cours (et, par exemple, bloquer l'économiseur d'écran) property bool shipheart_flag_blocage_compteurs_pendant_config: false // Permet de bloquer le compteur pendant qu'on est en config property int shipheart_compteur_time_out_niveau_acces: 0 // Contient le temps restant, en secondes, de la validité de l'accés en cours property int shipheart_time_out_niveau_acces: 120 property int shipheart_niveau_acces_en_cours: shipheart_niveau_acces_aucun // 0=aucun accès valide, 1=accès user validé, 10=accès admin validé, 20=accès Koriolan validé property int shipheart_message_users_max_nombre_reports: 3 // Valeur mise à jour avec 'TB_Configuration.Nb_maxi_reports_message_user' lors de l'init de 'home.qml' property int shipheart_periode_obsolescence_capteur_nmea: 600 // En secondes property int shipheart_niveau_home: 0 // Contient le niveau dans la StackView de la page 'home.qml' (dépend si des pages spécifique au client sont disposées avant). Permet de revenir directement à la page 'home.qml' depuis certaines pages property double shipheart_test_vitesse_test_ecran: 1500 property int nombre_lignes_matrice_test: 8 property int nombre_colonnes_matrice_test: 10 property bool flag_economiseur_actif: false // Dimensions (mises à jour dans 'home_attente.qml' selon la valeur de 'shipheart_type_installation' : property int shipheart_largeur_page property int shipheart_hauteur_page property int shipheart_hauteur_bandeau_haut property int shipheart_hauteur_titre_2 property int shipheart_hauteur_bandeau_bas property int shipheart_hauteur_clavier // Modèles : property Bdd bdd : Bdd{} property Systeme systeme : Systeme{} property TbMesuresModel tbmesuresModel : TbMesuresModel{} // Signals : width: shipheart_largeur_page height: shipheart_hauteur_page color: shipheart_theme_couleur_fond_ecran visible: true property int duree_animation_pages: 400 // En ms //=========================================================== // Connexion BDD : // La connexion MySql a un time-out (par défaut de 8h apparemment). La page Home faisant des mises à jour chaque secondes, il n'y a // aucun soucis de déclenchement. // Par contre, les mises à jour de Home étant désactivées lorsqu'on navigue sur les pages de niveau inférieur, si on reste sur // une telle page pendant plusieurs heures, le time-out se déclenche. Par exemple, si on reste sur une page de configuration // pensant une nuit, il est probable qu'on se trouve dans ce cas... // Dans ce cas, seul une réinit de l'appli QT permet de redémarrer puisque la connexion à la BDD est fait dans main.cpp. // Plutôt que d'allonger le time-out (il ne semble pas possible de le mettre à infini), il est ajouté ce timer qui fait une requête // toutes les heures, même lorsque Home n'est pas la page active. //=========================================================== Timer { id: timer_maintient_connexion_bdd interval: 60 * 60 * 1000 // Toutes les heures = 60 minutes x 60 secondes x 1000ms running: true repeat: true onTriggered: { let req = 'SELECT Valeur FROM TB_Systeme WHERE Nom="Heart_beat" '; let res = bdd.requete_unique(req); console.log("Déclenchement du timer de maintient de la connexion avec la BDD") } } //============================================================== // Pile de pages : //============================================================== StackView { id: stackView width: root.width height: root.height Component.onCompleted: { var result = stackView.push(Qt.resolvedUrl("qrc:/home_attente.qml")) // Cela permet d'avoir une page "propre" plutot qu'une page toute blanche en attendant que l'accès à la BDD soit possible et permette de déterminer la home page à charger. // console.log("Résultat du push : " + result) } pushEnter: Transition { // Nouvelle page, lors d'un PUSH PropertyAnimation { property: "x" from: shipheart_largeur_page // Part du bord droit... to:0 // ... jusqu'au bord gauche (la page "entre" par la gauche) duration: duree_animation_pages easing.type: Easing.OutQuad; } } pushExit: Transition { // Ancienne page, lors d'un PUSH PropertyAnimation { property: "x" from: 0 // Part du bord gauche, là où elle était affichée... to: -shipheart_largeur_page // ... et sort par la gauche, jusqu'à ce qu'elle disparaisse complètement à gauche. duration: duree_animation_pages easing.type: Easing.OutQuad; } } popEnter: Transition { // Nouvelle page, lors d'un POP PropertyAnimation { property: "x" from: -shipheart_largeur_page // Part de complètement hors du cadre, à gauche... to: 0 // ... jusqu'à ce que son bord gauche soit aligné avec le bord gauche de l'écran. duration: duree_animation_pages easing.type: Easing.OutQuad; } } popExit: Transition { // Ancienne page lors d'un POP. PropertyAnimation { property: "x" from: 0 // Part du bord gauche... to: shipheart_largeur_page // ... jusqu'au bord droit de l'écran (sort par la droite). duration: duree_animation_pages easing.type: Easing.OutQuad; } } } //============================================================== // Clavier : //============================================================== InputPanel { id: clavier z: 99 x: 0 y: root.height width: root.width states: State { name: "visible" when: clavier.active PropertyChanges { target: clavier y: root.height - clavier.height } } transitions: Transition { from: "" to: "visible" reversible: true ParallelAnimation { NumberAnimation { properties: "y" duration: 250 easing.type: Easing.InOutQuad } } } Component.onCompleted: { console.log("locales available: " + VirtualKeyboardSettings.availableLocales) console.log("Locale before changing it: " + VirtualKeyboardSettings.locale) VirtualKeyboardSettings.locale = "fr_FR"; console.log("Locale after changing it: " + VirtualKeyboardSettings.locale) // VirtualKeyboardSettings.styleName = "retro" // Les fichiers de layout spécifiques à Koriolan sont dans le répertoire /virtualkeyboard_layouts_koriolan et renseigné en ressource de qrc. // La procédure a été trouvée ici : https://forum.qt.io/topic/93279/how-to-custom-qml-virtual-keyboard/2 // Note : les fichiers relatifs au clavier sont situés dans /home/koriolan/qt/raspi/qt-everywhere-src-5.12.5/qtvirtualkeyboard/src/virtualkeyboard // En particulier, les fichiers de DEFAULT ou RETRO sont dans /home/koriolan/qt/raspi/qt-everywhere-src-5.12.5/qtvirtualkeyboard/src/virtualkeyboard/content/styles } } //--------------------------------------------------------------------------------------------------------------------------------------- // Les fonctions ci-dessous sont accessibles depuis n'importe quelle page (puisque appelée, directement ou indirectement par cell-ci). //--------------------------------------------------------------------------------------------------------------------------------------- //============================================================================================================= // Demande de synchro de la BDD //============================================================================================================= function synchro_bdd(type_synchro) { switch (type_synchro) { case shipheart_type_synchro_aucune: break; case shipheart_type_synchro_data: bdd.requete_unique('UPDATE TB_Systeme SET Valeur=1 WHERE Nom="Synchro" '); break; case shipheart_type_synchro_config: bdd.requete_unique('UPDATE TB_Systeme SET Valeur=2 WHERE Nom="Synchro" '); break; default: console.log("/!\\ Le paramètre de synchro de BDD reçu n'est pas valide [" + type_synchro + "]") break; } } //============================================================================================================= // Rebooter via l'Appli (permet un reboot "ordonné") : //============================================================================================================= function rebooter() { console.log("!!! Commande de REBOOT reçue !!!"); bdd.requete_unique('UPDATE TB_Systeme SET Valeur="Reboot" WHERE Nom="Demande_reboot" '); stackView.pop(stackView.get(shipheart_niveau_home)); // Retour à la page 'home.qml' car on va reseter et il faut pouvoir afficher le message user } }