first commit

This commit is contained in:
magnum88
2024-06-09 20:12:09 +02:00
commit 50a0c3a3c3
24 changed files with 233 additions and 0 deletions
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
[
{
"Designation": "Motarola Noir",
"Freq": "466050000",
"ARP": 4101663222,
"CapCode": "0166322",
"NumSerial": "234IVWC812"
},
{
"Designation": "Motorola Bleu",
"Freq": "466175000",
"ARP": 7101411852,
"CapCode": "0141185",
"NumSerial": "9802040601391"
},
{
"Designation": "Motorola Vert",
"Freq": "466206250",
"ARP": 3107158462,
"CapCode": "0715846",
"NumSerial": "723IXU66VL"
}
]
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env python3
from flask import Flask, request, render_template
import requests
import json
import os
app = Flask(__name__)
# Charger le fichier JSON
with open('data.json', 'r') as json_file:
data = json.load(json_file)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# Récupérer les données du formulaire
capcode = request.form['capcode']
message = request.form['message']
# Trouver la fréquence correspondant au CapCode
frequency = get_frequency_by_capcode(capcode)
if frequency:
# Envoyer le message POCSAG à l'application
send_pocsag_message(frequency, capcode, message)
return "Message envoyé avec succès à la fréquence {}".format(frequency)
else:
return "CapCode non trouvé !"
else:
return render_template('index.html', data=data)
def get_frequency_by_capcode(capcode):
for item in data:
if item["CapCode"] == capcode:
return item["Freq"]
return None
def send_pocsag_message(frequency,capcode,message):
# Formatage de la commande shell avec les variables
command = f'sudo pocsag -f "{frequency}" -t 1 -r 1200 -b 3 -' # -n pour digital number
message_command = f'printf "{capcode}:{message}" | {command}'
print("le cmd=",message_command)
# Exécution de la commande
os.system(message_command)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
+14
View File
@@ -0,0 +1,14 @@
Dans cet exemple :
Nous importons Flask pour gérer les requêtes Web.
La fonction index gère à la fois les méthodes GET et POST. En cas de méthode POST, elle récupère le message à partir du formulaire et appelle la fonction send_pocsag_message. En cas de méthode GET, elle affiche le formulaire.
La fonction send_pocsag_message est l'endroit où vous enverrez réellement le message POCSAG à votre application. Vous devrez remplacer le contenu de cette fonction par la logique réelle pour envoyer le message à votre application POCSAG.
Le serveur Flask est démarré en mode debug pour faciliter le développement.
Assurez-vous de personnaliser ce script en fonction de la manière dont vous voulez envoyer les messages POCSAG à votre application. Vous devrez remplacer send_pocsag_message par le code réel qui envoie les messages POCSAG. De plus, vous devrez créer un modèle HTML pour votre formulaire (index.html).
Dans ce fichier HTML :
Nous avons un formulaire simple avec un champ de texte pour le message POCSAG et un bouton d'envoi.
L'action du formulaire est définie sur la racine de votre site (/), ce qui signifie qu'il enverra les données du formulaire à la même route où votre application Flask attend les demandes POST.
Le champ de texte est défini comme un <textarea> pour permettre aux utilisateurs de saisir des messages de plusieurs lignes.
+22
View File
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Envoyer un message POCSAG</title>
</head>
<body>
<h1>Envoyer un message POCSAG</h1>
<form action="/" method="post">
<label for="capcode">CapCode:</label>
<select id="capcode" name="capcode" required>
{% for item in data %}
<option value="{{ item.CapCode }}">{{ item.CapCode }}</option>
{% endfor %}
</select><br><br>
<label for="message">Message:</label><br>
<textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br>
<input type="submit" value="Envoyer le message">
</form>
</body>
</html>