Adaptation pour CM5 des accès Wifi

This commit is contained in:
2026-10-09 14:48:41 +02:00
parent afb80edd0b
commit 8c1d962471
4 changed files with 141 additions and 17 deletions
+1 -1
View File
@@ -453,7 +453,7 @@ Shipheart_page {
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
// Canal : // Canal :
if (wifi_ap_cde !== 0) if ((wifi_ap_cde !== 0) && (wifi_sta_cde === 0)) // Si STA est actif, le canal AP suivra celui du mode STA ; inutile de l'afficher dans ce cas...
{ {
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_canal" '; req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_canal" ';
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
+67 -7
View File
@@ -39,6 +39,7 @@ Shipheart_page {
// Données : // Données :
property string ip_ap: "" property string ip_ap: ""
property int commande_sta: 0
// Modèles : // Modèles :
@@ -180,8 +181,9 @@ Shipheart_page {
width: parent.width width: parent.width
height: visible ? hauteur_ligne_formulaire : 0 height: visible ? hauteur_ligne_formulaire : 0
color: "transparent" color: "transparent"
visible: !flag_init && (champ_formulaire_Ap_commande.model.get(champ_formulaire_Ap_commande.currentIndex).valeur === 1) visible: !flag_init &&
//visible: false (champ_formulaire_Ap_commande.model.get(champ_formulaire_Ap_commande.currentIndex).valeur === 1) &&
(commande_sta === 0) // Si le mode STA est actif, le canal du mode AP suivra celui du mode STA....
Shipheart_formulaire_label { Shipheart_formulaire_label {
text: qsTr("Canal") text: qsTr("Canal")
@@ -226,6 +228,35 @@ Shipheart_page {
} }
} }
//-------------------------------------------------------------------------------
// Ligne de formulaire : Ap_partage
Rectangle {
width: parent.width
height: visible ? hauteur_ligne_formulaire : 0
color: "transparent"
visible: !flag_init &&
(champ_formulaire_Ap_commande.model.get(champ_formulaire_Ap_commande.currentIndex).valeur === 1) &&
(commande_sta === 1) // Si le mode STA est inactif, le partage n'a pas de sens...
//visible: false
Shipheart_formulaire_label {
text: qsTr("Partage accès STA")
width: parent.width * pourcentage_largeur_labels_formulaire
}
Shipheart_formulaire_combobox {
id: champ_formulaire_Ap_partage
model: ListModel { }
width: parent.width * (1 - pourcentage_largeur_labels_formulaire)
onActivated: {
shipheart_clic();
}
}
Shipheart_formulaire_ligne_separation {
haut_bas_hautbas: shipheart_formulaire_ligne_separation_basse
}
}
} }
} }
@@ -366,8 +397,16 @@ Shipheart_page {
var commande_ap; var commande_ap;
var mode; var mode;
var ap_canal; var ap_canal;
var ap_partage;
//---------------------------------------------------------------------------------------
// Commande_sta:
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_sta_cde" ';
res = bdd.requete_unique(req);
commande_sta = Number(res[0]);
//console.log("Etat de la commande STA = " + commande_sta);
//--------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------
// Commande AP : // Commande AP :
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_cde" '; req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_cde" ';
@@ -454,6 +493,21 @@ Shipheart_page {
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
ip_ap = res[0]; ip_ap = res[0];
//---------------------------------------------------------------------------------------
// Partage AP :
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_partage_internet" ';
res = bdd.requete_unique(req);
ap_partage = Number(res[0]);
champ_formulaire_Ap_partage.model.clear();
champ_formulaire_Ap_partage.model.append({"valeur": 0, "texte": qsTr("Off") });
champ_formulaire_Ap_partage.model.append({"valeur": 1, "texte": qsTr("On") });
// Positionnement de l'index sur la valeur en cours :
i = recherche_index_valeur_modele(ap_partage, champ_formulaire_Ap_partage.model, "ap_partage");
if (i === -1) champ_formulaire_Ap_partage.currentIndex = recherche_index_valeur_modele(1, champ_formulaire_Ap_partage.model, "ap_partage");
else champ_formulaire_Ap_partage.currentIndex = i;
flag_init = false; // Indique que l'init est terminée flag_init = false; // Indique que l'init est terminée
} }
@@ -483,14 +537,13 @@ Shipheart_page {
// Retourne une chaine vide si Ok, le message d'erreur si NOK // Retourne une chaine vide si Ok, le message d'erreur si NOK
//============================================================================================================= //=============================================================================================================
function check_saisie() function check_saisie()
{ {
if (champ_formulaire_Ap_commande.model.get(champ_formulaire_Ap_commande.currentIndex).valeur > 0) if (champ_formulaire_Ap_commande.model.get(champ_formulaire_Ap_commande.currentIndex).valeur > 0)
{ {
var liste_caracteres_autorisés_ssid_ap = "-."; // En plus des chiffres et des lettres majuscules et minuscules var liste_caracteres_autorisés_ssid_ap = "-."; // En plus des chiffres et des lettres majuscules et minuscules
var regex_ssid_ap = new RegExp("(^[0-9A-Za-z]+$)"); var regex_ssid_ap = new RegExp("^[0-9A-Za-z" + echapper_regex(liste_caracteres_autorisés_ssid_ap) + "]+$");
var liste_caracteres_autorisés_pwd_ap = "-_./="; // En plus des chiffres et des lettres majuscules et minuscules var liste_caracteres_autorisés_pwd_ap = "-_./="; // En plus des chiffres et des lettres majuscules et minuscules
var regex_pwd_ap = new RegExp("(^[0-9A-Za-z" + liste_caracteres_autorisés_pwd_ap + "]+$)"); var regex_pwd_ap = new RegExp("^[0-9A-Za-z" + echapper_regex(liste_caracteres_autorisés_pwd_ap) + "]+$");
if ((champ_formulaire_Ap_ssid.text.length < 1) || (champ_formulaire_Ap_ssid.text.length > 32)) return(qsTr("Le nom du réseau (SSID) doit comprendre entre 1 et 32 caractères. <br />Merci d'entrer un nom valide.")); if ((champ_formulaire_Ap_ssid.text.length < 1) || (champ_formulaire_Ap_ssid.text.length > 32)) return(qsTr("Le nom du réseau (SSID) doit comprendre entre 1 et 32 caractères. <br />Merci d'entrer un nom valide."));
if ((champ_formulaire_Ap_pwd.text.length < 8) || (champ_formulaire_Ap_pwd.text.length > 63)) return(qsTr("Le mot de passe d'accès au réseau doit comprendre entre 8 et 63 caractères. <br />Merci d'entrer un mot de passe valide.")); if ((champ_formulaire_Ap_pwd.text.length < 8) || (champ_formulaire_Ap_pwd.text.length > 63)) return(qsTr("Le mot de passe d'accès au réseau doit comprendre entre 8 et 63 caractères. <br />Merci d'entrer un mot de passe valide."));
@@ -508,6 +561,11 @@ Shipheart_page {
return(""); return("");
} }
function echapper_regex(liste)
{
return liste.replace(/[-\]\\^]/g, "\\$&"); // '-', ']', '\' et '^' ont un sens entre crochets
}
//============================================================================================================= //=============================================================================================================
// Mise à jour des valeurs saisies // Mise à jour des valeurs saisies
//============================================================================================================= //=============================================================================================================
@@ -524,6 +582,8 @@ Shipheart_page {
bdd.requete_unique(req); bdd.requete_unique(req);
req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Ap_canal.model.get(champ_formulaire_Ap_canal.currentIndex).valeur + '" WHERE Nom="Wifi_ap_canal" '; req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Ap_canal.model.get(champ_formulaire_Ap_canal.currentIndex).valeur + '" WHERE Nom="Wifi_ap_canal" ';
bdd.requete_unique(req); bdd.requete_unique(req);
req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Ap_partage.model.get(champ_formulaire_Ap_partage.currentIndex).valeur + '" WHERE Nom="Wifi_ap_partage_internet" ';
bdd.requete_unique(req);
// Demande de rechargement de la config du Wifi : // Demande de rechargement de la config du Wifi :
req = 'UPDATE TB_Configuration SET Valeur=1 WHERE Nom="Wifi_new_config" '; req = 'UPDATE TB_Configuration SET Valeur=1 WHERE Nom="Wifi_new_config" ';
+66 -5
View File
@@ -45,6 +45,7 @@ Shipheart_page {
property int compteur_scan_wifi_sta: 0 property int compteur_scan_wifi_sta: 0
property int stackview_niveau_page: 0 property int stackview_niveau_page: 0
property string bssid: "" property string bssid: ""
property int sta_bande: 0 // 0=tout (2.4GHz et 5GHz), 1=2.4GHz et 2=5GHz
property bool flag_pwd_visible: false property bool flag_pwd_visible: false
property bool flag_wifi_sta_up: false property bool flag_wifi_sta_up: false
@@ -210,6 +211,35 @@ Shipheart_page {
} }
} }
//-------------------------------------------------------------------------------
// Ligne de formulaire : STA_Bande
Rectangle {
width: parent.width
height: visible ? hauteur_ligne_formulaire : 0
color: "transparent"
visible: !flag_init &&
(champ_formulaire_Sta_commande.model.get(champ_formulaire_Sta_commande.currentIndex).valeur === 1)
Shipheart_formulaire_label {
text: qsTr("Fréquences")
width: parent.width * pourcentage_largeur_labels_formulaire
}
Shipheart_formulaire_combobox {
id: champ_formulaire_Sta_bande
model: ListModel { }
width: parent.width * (1 - pourcentage_largeur_labels_formulaire)
onActivated: {
shipheart_clic();
sta_bande = champ_formulaire_Sta_bande.model.get(champ_formulaire_Sta_bande.currentIndex).valeur;
}
}
Shipheart_formulaire_ligne_separation {
haut_bas_hautbas: shipheart_formulaire_ligne_separation_basse
}
}
} }
} }
} }
@@ -385,10 +415,6 @@ Shipheart_page {
var i; var i;
var nom_champ, valeur_champ; var nom_champ, valeur_champ;
var commande_sta; var commande_sta;
var commande_ap;
var mode;
var ap_canal;
stackview_niveau_page = stackView.depth; stackview_niveau_page = stackView.depth;
@@ -419,6 +445,22 @@ Shipheart_page {
if (i === -1) champ_formulaire_Sta_commande.currentIndex = recherche_index_valeur_modele(1, champ_formulaire_Sta_commande.model, "commande_sta"); if (i === -1) champ_formulaire_Sta_commande.currentIndex = recherche_index_valeur_modele(1, champ_formulaire_Sta_commande.model, "commande_sta");
else champ_formulaire_Sta_commande.currentIndex = i; else champ_formulaire_Sta_commande.currentIndex = i;
//---------------------------------------------------------------------------------------
// Sta_bande:
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_sta_bande" ';
res = bdd.requete_unique(req);
sta_bande = Number(res[0]);
champ_formulaire_Sta_bande.model.clear();
champ_formulaire_Sta_bande.model.append({"valeur": 0, "texte": qsTr("Auto (2.4GHz & 5GHz)") });
champ_formulaire_Sta_bande.model.append({"valeur": 1, "texte": qsTr("2.4GHz") });
champ_formulaire_Sta_bande.model.append({"valeur": 2, "texte": qsTr("5GHz") });
// Positionnement de l'index sur la valeur en cours :
i = recherche_index_valeur_modele(sta_bande, champ_formulaire_Sta_bande.model, "sta_bande");
if (i === -1) champ_formulaire_Sta_bande.currentIndex = recherche_index_valeur_modele(1, champ_formulaire_Sta_bande.model, "sta_bande");
else champ_formulaire_Sta_bande.currentIndex = i;
mise_a_jour(); mise_a_jour();
@@ -457,7 +499,22 @@ Shipheart_page {
"qualite_ssid": 0, "qualite_ssid": 0,
"connu": false }); "connu": false });
req = 'SELECT Bssid, Presence, Nom, Psk, Canal, Qualite, Connu FROM TB_Wifi_sta ORDER BY Qualite DESC '; var filtre;
switch(sta_bande)
{
case 1:
filtre = "WHERE Canal<20"; // 2.4GHz seulement
break;
case 2:
filtre = "WHERE Canal>=20"; // 5GHz seulement
break;
case 0:
default:
filtre = ""; // Toutes les fréquences
break;
}
req = 'SELECT Bssid, Presence, Nom, Psk, Canal, Qualite, Connu FROM TB_Wifi_sta ' + filtre + ' ORDER BY Qualite DESC ';
//console.log("req = [ " + req + " ;]"); //console.log("req = [ " + req + " ;]");
nb = bdd.requete(req); nb = bdd.requete(req);
@@ -534,6 +591,10 @@ Shipheart_page {
// Mise à jour dans TB_Configuration : // Mise à jour dans TB_Configuration :
req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Sta_commande.model.get(champ_formulaire_Sta_commande.currentIndex).valeur + '" WHERE Nom="Wifi_sta_cde" '; req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Sta_commande.model.get(champ_formulaire_Sta_commande.currentIndex).valeur + '" WHERE Nom="Wifi_sta_cde" ';
bdd.requete_unique(req); bdd.requete_unique(req);
req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Sta_bande.model.get(champ_formulaire_Sta_bande.currentIndex).valeur + '" WHERE Nom="Wifi_sta_bande" ';
bdd.requete_unique(req);
req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Sta_liste_ssid.model.get(champ_formulaire_Sta_liste_ssid.currentIndex).bssid + '" WHERE Nom="BSSID_Wifi_sta" '; req = 'UPDATE TB_Configuration SET Valeur="' + champ_formulaire_Sta_liste_ssid.model.get(champ_formulaire_Sta_liste_ssid.currentIndex).bssid + '" WHERE Nom="BSSID_Wifi_sta" ';
bdd.requete_unique(req); bdd.requete_unique(req);
+7 -4
View File
@@ -2991,11 +2991,14 @@ console.log("Exécution de la commande [ " + commande + " ]");
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
adresse = res[0]; adresse = res[0];
req = 'SELECT Nom, Canal, Qualite FROM TB_Wifi_sta WHERE Bssid="' + bssid + '" '; req = 'SELECT Nom, Qualite FROM TB_Wifi_sta WHERE Bssid="' + bssid + '" ';
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
nom = res[0]; nom = res[0];
canal = Number(res[1]); qualite = Number(res[1]);
qualite = Number(res[2]);
req = 'SELECT Valeur FROM TB_Systeme WHERE Nom="Canal_wifi_sta" ';
res = bdd.requete_unique(req);
canal = res[0];
msg += "<tr>"; msg += "<tr>";
@@ -3051,7 +3054,7 @@ console.log("Exécution de la commande [ " + commande + " ]");
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
nom = res[0]; nom = res[0];
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="Wifi_ap_canal" '; req = 'SELECT Valeur FROM TB_Systeme WHERE Nom="Canal_wifi_ap" ';
res = bdd.requete_unique(req); res = bdd.requete_unique(req);
canal = res[0]; canal = res[0];