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

BIN
Dev_PocSag/Festival.mp3 Normal file

Binary file not shown.

23
Dev_PocSag/data.json Normal file
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
Dev_PocSag/gohttp.py Executable file
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
Dev_PocSag/read.me Normal file
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.

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>

128
README.md Normal file
View File

@ -0,0 +1,128 @@
RpiTx modified F4IYT
============================
![RpiTX](img/rpi.png)
Source de F5OEO<br>
https://github.com/F5OEO/rpitx
<br>
## RPITX Version en production 2.0
Avec un raspberry pi 3<br>
J'ai modifié le système
et crer un proto hardware<br>
![PocSaG](img/1717951887961.jpg)
La sortie ce fait sur le GPIO 4<br>
Mes padgers<br>
![PocSaG](img/1717951887952.jpg)
Les 2 du bas sont des numériques<br>
et les 2 du haut des alphanumérique<br>
le fichier .img zipper sur une carte de 16Go<br>
# Les infos
En France, les fréquences attribuées au POCSAG sont sur la bande du 466 MHz interdi à tout transmission !
466.025 MHz<br>
466.050 MHz<br>
466.075 MHz<br>
466.175 MHz<br>
466.20625 MHz<br>
466.23125 MHz<br>
Il faut avoir un numéro nommé ARP qui est un CAP Code numéo unique d'identifiant du PAGGER<br>
sans ce numéo il est impossible de pourvoir communiquer avec<br>
ex:<br>
![PocSaG](img/1717951887955.jpg)
ici ARP: 31 0715846 2<br>
Pour avoir un CapCode, il suffit de supprimer les 2 premiers et le dernier chiffre ARP<br>
Donc CAP Code=0715846<br>
et la fréquence ici 466.20625Mhz<br>
# les protocols
TamTam, c'est Cegetel/SFR arrété en in 1999, il utilisait le protocol ERMES.<br>
KOBBY, c'est Bouygue Telecom, arrété en 2005, il utilisait le protocol ERMES/FLEX.<br>
TATOO, c'est FT/Orange, qui utilise le POCSAG, il fonctionne depuis 2000.<br>
pour emettre sur 438.2160 il faudrai un quartz de 49.152 Mhz<br>
# Calcul du quartz
Pour connaitre la fréquence du quartz:<br>
(F - IF ) /8 = Quartz<br>
exemple 466.050Mhz pour F<br>
IF toujours 45Mhz<br>
(466.05 -45)/8 = 52.631Mhz<br>
Autre methode trouver la fréquence avec un quartz:<br>
(Q+IF/8)*8=F<br>
Soit un Q=48Mhz<br>
(48+45/8)*8=429Mhz<br>
#Utilisation du Os RpiTx
Attention a avoir une bonne alementation 5V 3A<br>
connection en SSH<br>
```cd rpitx```
```./easytest.sh```
![OsRpi](img/ssh.png)
![OsRpi](img/433.png)
![OsRpi](img/menu.png)
![OsRpi](img/MenuSuite.png)
![OsRpi](img/spectrum2.png)
ici complet
![OsRpi](img/spectrum.png)
si incomplet Pb Alim
![OsRpi](img/FmRDS.png)
# Bonnus
SSTV en modem color 24 si non remplacer 24 par 16
```sudo ./gosstv.sh 433.0 /home/pi/rpitx/src/resources/TestPattern.jpg F4IYT 24```
Stream RadioFM<br>
```./streamradiofm.sh``
Cq CQ CW
```sudo ./morse 434000000 25 "Cq Cq F4IYT"```
Spectrum
```./testspectrum.sh 433000000 src/resources/TestPattern.jpg```
FT8
```sudo ./pift8 -m "CQ F4IYT JN33" -f 433.1e6```
# Formulaire
allez dans le répertoire
PocSag
cd PocSag
puis ./gohttp.py
ouvrir une page Web sur IP du RPI3 avec le port 8080
exempel ici
http://192.168.0.70:8080/
![OsRpi](img/FormPocsag.png)
puis choisir dans la liste le CapCode du Pagger
saisir un message et envoyer
le message sera reçu si le pagger est allumé et à porter.
pour changer la liste editer le fichier data.json
<br>
73<br>
Xavier

BIN
RpiTX.v2.zip Normal file

Binary file not shown.

BIN
img/1717951887946.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

BIN
img/1717951887949.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

BIN
img/1717951887952.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

BIN
img/1717951887955.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 MiB

BIN
img/1717951887958.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

BIN
img/1717951887961.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

BIN
img/1717951887963.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

BIN
img/433.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
img/FmRDS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

BIN
img/FormPocsag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
img/MenuSuite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

BIN
img/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
img/rpi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

BIN
img/septrum2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
img/spectrum.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
img/ssh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB