#1 2010-08-21 20:31:27

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Lecteur de code barre réseau avec smartphone android

Bonjour à tous,

Cherchant depuis longtemps une solution pour évité de rentrer à la main le no ISBN des livres sur gcstar je viens de faite mon 1er script sur android.

Ce script lit  le code barre à l'aide de la caméra de smartphone et envoi le numéro ISBN sur mon ordi qui le stock dans le presse papier. Je cherche à remplacer cette copie dans le presse papier par une introduction direct du no ISBM dans gcstar. Je problème est que ... je ne connais pas le perl hmm.

En plus technique,

Sur le smartphone, un script python (utilisant le "Scripting Layer for Android") lit le code barre et l'envoi via un socket (c'est la 1ère fois que je me sert ce cella) sur mon ordi (actuellement il envoi juste le no ISBN via le port 50007 mais tous cella peut bien sûr être modifié !)

Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Setting
HOST = '192.168.0.1'    # The remote host
PORT = 50007              # The same port as used by the server

# Code
import android, socket
droid = android.Android()

while 1:
    code = droid.scanBarcode()
    isbn = int(code.result['extras']['SCAN_RESULT'])

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    s.send(str(isbn))
    data = s.recv(1024)
    s.close()
    print 'Received', repr(data)

    # boite de dialogue affichant le no isb et 2 boutons
    droid.dialogCreateAlert('ISBN', "no : %s"%isbn)
    droid.dialogSetPositiveButtonText('Continuer')
    droid.dialogSetNegativeButtonText('Arreter')
    droid.dialogShow()
    response = droid.dialogGetResponse().result
    if response['which'] != 'positive' :
        break

Sur l'ordi tourne en boucle ce script pas très propre et qui ne fonctionnera que sous GNU/Linux (utilisation de la commande système "xclip" pour mettre le no ISBN dans le presse papier)

Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket, os

HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
while 1:
    s.listen(1)
    conn, addr = s.accept()
    print 'Connected by', addr
    ret = ''
    while 1:
        data = conn.recv(1024)
        if not data:
            break
        conn.send(data)
        ret += data

    conn.close()

    print "CodeBarre : %s"%ret
    os.system("echo '%s'|xclip"%ret)

Y'aurait-il une âme charitable pour coder un plugin pour gcstar qui remplacerait ce demon boiteux et qui insérerait le no ISBN directement dans le champ "isbn".

A moins qu'il n'existe déjà quelque chose ou ... que ce ne sois actuellement pas possible sad.

Last edited by jojotux (2010-08-21 20:32:51)


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#2 2010-08-22 13:35:25

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Lecteur de code barre réseau avec smartphone android

Salut,

J'aime beaucoup cette idée smile Ca te semble facile à faire avec une application native sur Android ? Ca serait plus simple pour les utilisateur. Je vais regarder ça à l'occasion. Pour le côté GCstar, je vais aussi créer une tâche pour faire un plugin dans ce sens. J'ai quelques idées à ce sujet et je vais m'y atteler dès que possible.

Offline

 

#3 2010-08-22 16:31:54

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

Je n'ai jamais développé d'appli native sur android mais je ne pense pas que cella soit très compliqué pour quelqu'un qui connait hmm.

Si quelqu'un d'autre est intéressé par le développement d'une appli native je lui laisse le privilère de le développer:) dans le cas contraire je regarde comment ça ce passe vendredi prochain.


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#4 2010-08-24 18:40:45

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

Je viens de regarder si il était possible de faire une appli stand alone développée avec le SL4A, c'est la cas.

Je fais quelque test vendredi pour voir comment ça fonctionne et surtout voir la taille de l'appli car avec une appli de 1Mo pour un simple lecteur de code barre ... c'est pas top !

Si je peux belle et bien développer un python :

Tian, au niveau du "protocole" je propose quelque chose de plus universelle, l'api de google donne plusieurs information :
   FORMAT (ex CODE_128, EAN_13 ...)
   RESULT (no du code barre)

Donc je vais envoyer les 2 infos, quelqu'un sait-il si il y a une norme ? si oui laquelle ? sinon je ne pense pas me casser la tête big_smile

Code:

FORMAT EAN_13\n
RESULT 1234567890\n

Les idées de nom d'appli sont égallement les bienvenues (l'idée étant de faire un appli qui marge avec gcstar mais qui ne lui est pas dédié ce ne serrait pas qqch du genre gcstarscanner)

L'appli serra bien sûr distribuée sous une licence libre (GNU/GPL ou moin restrictive), gratuitement et sans pub !

Last edited by jojotux (2010-08-24 18:45:28)


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#5 2010-08-24 21:28:20

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Lecteur de code barre réseau avec smartphone android

Salut,

J'ai regardé le code source de SL4A et tout ce que fait la fonction pour scanner, c'est appeler un autre programme, Barcode Scanner. Et c'est aussi très simple de faire la même chose dans une appli Java. J'ai tout juste commencé à le faire, mais j'ai un peu manqué de temps pour finaliser ça. Par contre j'étais parti sur un nom comme gcstar scanner justement wink La valeur ajoutée me semble tellement faible par rapport au programme qui fait tout le boulot que je ne suis pas sûr que ça vaille le coup d'en faire un programme générique.

Concernant le format, il faudrait quelque chose d'un peu flexible si possible. Et avec un moyen de détecter la fin d'un enregistrement. Le XML correspondrait mais c'est peut être un peu trop verbeux.

Offline

 

#6 2010-08-26 18:08:19

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

Effectivement c'est très simple smile le boulot est plutôt de créer une bonne interface utilisateur que de réellement codé smile mais quand on ne connais pas java ... c'est un gros investissement en temps

Par contre j'étais parti sur un nom comme gcstar scanner justement  La valeur ajoutée me semble tellement faible par rapport au programme qui fait tout le boulot que je ne suis pas sûr que ça vaille le coup d'en faire un programme générique.

Ben ... si c'est toi qui fais tu peux choisir le nom de programmes smile. Pour le coté "c'est tellement simple donc ça ne sert à rien de faire du générique", se serait le cas si une autre appli existait déjà. Mais je pense que quelqu'un qui ne sais pas du tout codé peut trouvé un intérêt a avoir un lecteur universelle ce ce type ! Mais si tu veux faire une appli dédiée à GCstar libre à un autre développeur d'en faire un générique big_smile.

Je pense que je vais quand même regardé combien de place prend une appli SL4A juste pour savoir wink.

note que SL4A permet aussi de développer en perl !


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#7 2010-08-27 13:50:24

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

SL4A à une drôle de notion du "stand alone" l'appli fait quelque centaine de ko mais demande d'installer les lib python lors du 1er lancement, il ça ne le fait pas de le détail ! ça té élcharge toutes les lib soit plus de 4Mo.

Conclusion, pour une appli si simple il faut vraiment la faire en java !


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#8 2011-04-19 19:39:32

Grummfy
New member
Registered: 2008-03-28
Posts: 9

Re: Lecteur de code barre réseau avec smartphone android

Hello,
je me permet de faire remonter le sujet car ce genre de chose pourrait facilement être ajouter à l'appli android gcstar (http://wiki.gcstar.org/en/gcstar_viewer), si dans un premier temps il n'y a pas de réseau on pourrait les stocker dans un fichier et puis importer celui-ci dans gcstar. Sinon faire un script de communication réseau est possible (et pas très compliqué).

Sinon une application séparé peut être implémenté afin de ne pas mélangé gcstar viewer et gcstar barcode reader ...

Pour info l'appli barcode scaner est basé sur zxing : http://code.google.com/p/zxing/

Offline

 

#9 2011-08-15 16:31:24

bjo
New member
Registered: 2011-01-08
Posts: 2

Re: Lecteur de code barre réseau avec smartphone android

Bonjour,

hier, sans avoir vu ce post, j'ai fais mon scanner android vers clipboard. Ma solution est d'utiliser Barcode Scanner ZXing et comme on peut paramétrer une URL personnelle, j'ai simplement mis l'adresse de ma machine Ubuntu qui possède un serveur apache avec mod_perl. Un petite page récupère le paramètre et le passe à xclip; je promet je n'ai pas vu ce post avant :-)  Je colle le barcode dans le champ titre d'un nouvel enregistrement de ma collection de films, puis je lance la recherche (plugin DVDfr.com p.ex.).

Donc sur Android on peut utiliser l'application "standard", mais côté poste qui sert à faire la saisie dans gcstar, c'est un peu lourd.

Idéalement:
1) c'est gcstar qui devrait être à l'écoute sur un port pour récupérer l'URL envoyée par Barcode Scanner ZXing et lors de la réception des données, créer un nouveau record pour la collection ouverte.
2) L'application devrait aussi prévoir pour toutes ses collections de stocker les barcodes.

Pour la fonction 1,
a) cette routine d'écoute devrait agir comme le menu qui créé un nouvel enregistrement lors qu'il reçois la donnée.
b) il faut pouvoir, dans les paramètres de l'application, activer ou non la fonction (déactivé par défaut je dirais) et paramétrer l'interface et le port.

Malheureusement mes connaissances en perl sont minimes, donc je ne sais pas trop où implémenter et quelles librairies peuvent faciliter l'implémentation.

Merci de me donner quelques idées.

Offline

 

#10 2011-08-16 09:46:05

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Lecteur de code barre réseau avec smartphone android

Bonjour,

Tout ça a été fait dans la version 1.6.2 avec une appli "GCstar Scanner" disponible sur l'Android Market. Plus d'infos ici :

http://wiki.gcstar.org/en/barcodescanner

Offline

 

#11 2011-08-20 10:31:09

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

C'est une bonne nouvelle tout ça ! Merci !

Je n'ai pas encore mis GCstar 1.6.2 mais promis je teste dès que je l'ai mis !


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 

#12 2011-09-09 09:47:02

jojotux
Member
Registered: 2007-09-14
Posts: 78
Website

Re: Lecteur de code barre réseau avec smartphone android

Ben je suis désolé mais je ne trouve pas ça très pratique sad.

Au niveau d'android ce qui me dérange c'est l'affichage entre chaque scan de l'interface pour modifié les paramêtres de configuration. Solution que je propose la création d'un sous menu pour la configuration (accessible via le bouton phisique "menu")

Au niveau de gcstar c'est
  1) De devoir aller chercher la scanneur au fin fond des menu
  2) Enfin le trouver et devoir le reconfigurer à chaque fois !!!
  3) La liste des plugins de recherche n'est pas la même que dans le reste de gcstar (collection de livre) pourquoi ?

Je ne comprend pas ce choix, j'aurais plutôt vu un truc qui tourne en tâche de fond (un demon) avec une entrée dans les menu pour le configurer.
Ensuite si l'utilisateur scan un code barre depuis android et si gcstar est lancer, aucune action n'est a faire sur l'ordi. Le demon sur le PC détecte qu'il y a eu un scan, colle le code barre dans le champs adhoc, lance la recherche (et le top serait que si il y a plusieurs réponse la choixs'affiche sur le smartphone comme ça pas besoin de passer du téléphone à la souris, mais là a complique beaucoup).

Pas taper, ce sont des suggestions big_smile pour ma part je continue à utiliser mon truc en python que je trouve plus pratique.


GCweb, présentez vos collections GCstar sur le web de façon dynamique !

PS : je cherche des traducteurs français → autres langues

Offline

 



Should you have a problem using GCstar, you can open a bug report or request some support on GCstar forums.