• Nos produits
  • Nos réalisations
  • Interactivité
  • Documentation (current)
  • Introduction
  • Tutoriels
    • Introduction
    • Premiers pas
    • Connexion avec un nano-routeur
    • Connexion filaire directe
    • Transférer du contenu
    • Utiliser l'API de contrôle
  • Guides techniques
    • Introduction
    • Modifier la playlist
    • Les règles de la création d'hologrammes
    • Guide d'utilisation de Holusion content manager
    • Guide d'installation et d'utilisation de Holusion Companion
    • Inverser une caméra sur Unity 3D
  • Références
    • Introduction
    • organisation
    • controle de playlist
  • Manuels produits
    • Introduction
    • Manuel Iris 22
    • Manuel Iris 32
    • Manuel Iris 46
    • Manuel d'assemblage Iris 46
    • Manuel Prism
    • Manuel Opal
    • Assemblage stèle Iris 22
    • Assemblage stèle Iris 32
    • Manuel Hélices holographiques
  • Documents
    • Introduction
    • eCorpus
    • eThesaurus
    • Maquettes holographiques
    • Musées et Culture
    • Produits techniques
    • Guide d'intégration

Utiliser l'API de contrôle

Utiliser la playlist

Nous allons réaliser un programme en python qui affichera la liste des médias et permettra de séléctionner un élément de la playlist pour le lire.

L’affichage

Tout d’abord, nous allons récupérer l’ensemble de la playlist et l’afficher avec la librairie ncurses :

#!/usr/bin/env python
import curses
import requests

medias = requests.get("http://192.168.1.46/playlist").json()

# init curses #
screen = curses.initscr()
curses.noecho()
curses.cbreak()
screen.keypad(True)
screen.addstr("Press Arrow keys or Esc.")

index = 0
for media in medias:
    if media.get("active") :
        screen.addstr(index+1,2,media.get("name"),curses.A_REVERSE)
    else:
        screen.addstr(index+1,2,media.get("name"))
    index = index+1
    screen.refresh()

screen.move(0,curses.COLS - 1)
while 1:
    c = screen.getch()
    if c == 27: #Escape
        break;
curses.nocbreak()
screen.keypad(False)
curses.echo()
curses.endwin()

Si l’on lance le programme, il affichera la liste des médias en différenciant ceux qui sont activés de ceux qui sont désactivés.

Nous allons ensuite utiliser une nouvelle route : [PUT] /control/current/{name}. Dans le standard HTTP, la méthode PUT correspond à une création de ressource. On envoie au serveur le nom du média qu’on souhaite afficher.

La création d’une requête PUT est souvent un peu plus compliquée qu’un GET.

Avec la librairie requests :

name= "my_media_name"
req = requests.put('http://10.0.0.1/control/current/'+name)
if req.status_code != 200:
  print(req.text) # échec
else:
  print("OK") # succès

Si l’on essaie ce code, la requête échoue : “my_media_name” n’est pas présent dans les médias disponibles.

On peut à partir de ces 2 requêtes créer une application permettant de piloter les hologrammes à partir des flèches directionnelles du clavier :

#!/usr/bin/env python
import curses
import requests
ip = "192.168.1.129"
medias = requests.get("http://"+ip+"/playlist").json()
cursor = 0
offset= 0

# init curses #
screen = curses.initscr()
curses.noecho()
curses.cbreak()
screen.keypad(True)
screen.addstr("Press Arrow keys or Esc.")


def display_media(offset):
	cursor=0
	screen.clear()
	screen.addstr("Press Arrow keys or Esc.")
	index=0
	for media in medias[offset:15+offset]:
		if media.get("active") :
       			screen.addstr(index+1,2,media.get("name"))
		else:
			screen.addstr(index+1,2,media.get("name"),curses.A_REVERSE)
		index = index+1
		screen.refresh()

	screen.move(cursor+1,0)

display_media(offset)
while 1:
    screen.addstr(cursor+1,2,medias[cursor+offset].get("name"),curses.A_REVERSE)
    screen.refresh()
    c = screen.getch()
    if c == curses.KEY_UP and cursor>0:
        screen.addstr(cursor+1,2,medias[cursor+offset].get("name"))
        cursor = cursor - 1
    elif c == curses.KEY_DOWN and cursor<14:
        screen.addstr(cursor+1,2,medias[cursor+offset].get("name"))
        cursor = cursor + 1
    elif c == curses.KEY_RIGHT and len(medias)<offset+15:
        offset = offset+15
        display_media(offset)
    elif c == curses.KEY_LEFT and offset>=15:
        offset = offset-15
        display_media(offset)
    elif c == 27: #Escape
        break;
    elif c == 10:
        req = requests.put('http://'+ip+'/control/current/'+medias[cursor+offset].get("name"))
        if req.status_code != 200:
            screen.addstr(0,30,req.text)
        else:
            screen.addstr(0,30,"OK")
    else:
        screen.addstr(0,30,"Pressed : "+str(c))
    if cursor <0:
        cursor = len(medias)-1
    elif len(medias) <= cursor:
        cursor = 0
curses.nocbreak()
screen.keypad(False)
curses.echo()
curses.endwin()

Contact

  • contact@holusion.com
  • +33 (0)9 70 66 77 96
  • 111, avenue Jean Lebas
    59100 Roubaix, France

Holusion

  • Qui sommes-nous ?
  • Conditions générales de vente
  • Politique de confidentialité

Nous Suivre

 
 
 
 
 
Holusion © 2015 - 2025 CC. Attribution ShareAlike CC.BySa