Programmation application web pour la platforme redpitaya - Electronique, domotique, DIY
Marsh Posté le 12-05-2024 à 12:05:46
Hello,
Sympa de vouloir partager, mais ça serait une très bonne idée de créer un GitHub (ou assimilé) pour ça, parce que la c'est légèrement imbitable. Les forums c'est pas trop fait pour les côté coller de 10000 lignes...
En outre, je doute franchement qu'un problème comme "le front ne se connecte pas bien au backend" nécessite d'avoir le programme complet pour être identifié.
Marsh Posté le 12-05-2024 à 12:06:25
voilà la suite du code
Fichier js/guiHandler.js
Code :
|
le fichier de compilation du projet total
Fichier Makefile
Code :
|
Marsh Posté le 12-05-2024 à 12:09:35
TotalRecall a écrit : Hello, |
Marsh Posté le 12-05-2024 à 12:30:18
Ceci n'est qu'une supposition, je pense que le problème vient de mon code.
Marsh Posté le 12-05-2024 à 14:29:46
+1 pour TR et perso (qui ne pourrait répondre) je n'ai pas envie de lire tout ce code et toute cette prose aussi...
Marsh Posté le 12-05-2024 à 11:59:19
Bonjour tout le monde,
Il y a quelque semaines, j'ai découvert une nouvelle plateforme de développement open-source qui me permettara de remplacer les instruments couteux et volumineux de mon laboratoire, la redptitaya. Je me suis procuré le modèle STEMlab 125-14 qui propose deux entrées de 125Msps 14 bits et de deux sorties 14 bits, un FPGA Xilinx Zynq 7010 couplé à un processeur ARM Cortex-A9 double-coralité et offre un accès à distance, avec une interface utilisateur d'application en ligne accessible via Ethernet ou Wi-Fi. Pour faire fonctionner tout ce petit monde la plateforme à créer un système d'exploitation basé sur un système linux ubuntu (actuellement j’utilise la dernière version du système RedPitaya_OS_2.00-30_stable.img).
Puisque cette carte ne peut pas gérer d'écran, il est essentiel de concevoir une interface utilisateur web fonctionnant sur un navigateur internet pour contrôler l'application back-end, compilé et installé sur le système d'exploitation. Tout ce qui fonctionne dans le navigateur est le frontend. C'est la partie qui permet de visualiser les données à l'écran ou modifier certains paramètres pour ajuster les paramètres à l'intérieur de l'application back-end.
La partie front-end de l'application utilise la technologie HTML5, CSS3 et Javascript pour créer l'interface web.
La partie back-end est programmé en C ou en C++ et peut nécessité du Vérilog pour manipuler le FPGA.
L'échange d'information entre le C++ et le Javascript s’effectue par des fichiers JSON, pour transmettre les valeurs des paramètres ou des signaux échantillonnés et générés. Pour que cela fonctionne un serveur NGINX fonctionne en continue. (Si vous voulez plus d'information surfez sur la documentation de la plateforme au lien suivant: https://redpitaya.readthedocs.io.)
Pour me familiariser avec le système, j’essaie de développer une application me permettant de faire un générateur de signaux sur deux sorties DAC 14 bits et oscilloscope sur les deux entrées ADC 14 bits. Mon application devra être capable de configurer la forme, l'amplitude, la fréquence des signaux à générer et d'afficher dans un plot jQuery la forme des signaux échantillonnées et générée. Pour l'instant je me contente de faire rentrer les signaux générés sur les entrées de la carte en connectant une sortie à une entrée par un câble coaxiale.
A ce stade du développement, j'ai commencé à réaliser une petite interface web m'affichant un menu dans un bandeau vertical pour choisir et configurer les channels et un plot jQuery pour afficher les signaux. De plus j'ai aussi programmer la partie back-end en C++ pour créer les paramètres nécessaire et des fonctions pour manipuler les convertisseurs 14 bits. Pour plus de simplicité la plateforme possède quelque libraire simplifiant la transmissions et la réception des sockets pour échanger les paramètres et d'autre librairie permettant de configurer et échantillonner les signaux DAC et ADC.
Le cœur de mon problème est que l'interface front-end refuse catégoriquement de se connecter à l'interface back-end, ce dont je ne comprend pas, puisque ce processus doit se faire automatiquement par la librairie C++ de la carte. Le code Javascipt doit juste vérifié si le socket a était accpété en le demandant au serveur NGNIX. Cependant le serveur me renvoie continuellement l'erreur suivante: "Can not load application. Error: -1 app.js:120:14"
J’espère que quelqu’un connait le système pour me partager ses connaissances sur ce système et que peut-être cela répondra à mon problème.
Si vous voulez lire mon code pour trouver peut-être une incohérence, ou tester mon code sur votre redpitaya, le voici ci-dessous:
La partie back-end:
fichier src/hardwareInfo.h
fichier hardwareInfo.cpp
fichier src/log.h
Fichier src/main.h
Fichier src/main.cpp
le fichier de compilation des sources c/c++
[i]Fichier src/Makefile
La partie front-end
Fichier index.html
Fichier css/style.css
Fichier js/app.js
Message édité par clemCH le 12-05-2024 à 12:41:08