first commit
This commit is contained in:
Binary file not shown.
@@ -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"
|
||||
}
|
||||
]
|
||||
Executable
+46
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user