Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Code EAN-128
ld le 07/12/2014 à 20:13
Bonjour à tous !
Je viens demander un peu d'aide.
Je viens de terminer un prgm qui génère des codes barre encodés en EAN-128.
Le seul hic est que sa basse de donnée est trop lourde. Pour avoir au moin les chiffres et les lettres majuscules il faut entrer entièrement l'alphabet "B" de la table de conversion à cette adresse :
https://fr.wikipedia.org/wiki/Code_128
Le prgm fonctionne bien, puisqu'il affiche les même code barre qu'avec ce site de conversion :
http://barcode.tec-it.com/barc[...]or.aspx?LANG=fr
L'EAN-128 est une des normes les plus rependues. C'est par exemple avec celle-ci qu'on réalise les code barres dans les supermarchés.
En scannant le code barre ainsi créé sur une borne de prix j'ai donc pu afficher ce que je voulais sur celle-ci. Une petite phrase, un code... TROP FORT !
Je n'ai pas encore trouver mais je suis sûr qu'un liens existe entre le fait que, par exemple : la valeur 4 = "10010001100" ou encore que 7 = "10011000100".
Ce qui par un bête calcul, remplacerait la base de donné.
Vous me suivez ?
J'ai tout essayer, conversion en base 2,16,36,sur 8 bits, en additionnant et multipliant les nombres binaires... Mais je ne voit aucune suite logique entre "valeur", "code ASCII" et "modèle barre/espace".
Voici ce que j'ai déjà pû trouver :
Les modèles barre/espace semblent toujours commencer par 1 et finir par 0.
Chaque modèle doit contenir un nombre paire de 1 et impaire de 0.
Chaque modèle est codé sur onze bits, sauf le caractère "Stop".
A chaque chiffre ou lettre correspond une valeur et un code ASCII.
Les codes ASCII sont donnés par ce tableau :
http://www.bourguet.org/v1/charset/tables7.png
Exemple "M" (majuscule) est sur la colonne 4 et la ligne D. En hexadécimal 4D = 77, soit le code ASCII de "M".
Enfin, pour trouver la valeur de "M", il faut toujours faire le code ASCII-32, soit 45.
A VOS NEURONES !!

linkakro le 07/12/2014 à 22:58
Je crois qu'il y a confusion entre le code 128 et la norme EAN d'identification des marchandises. Toi tu désignes le code 128, la partie graphique, qui est incluse dans EAN 128.
J'ai déjà eu un devoir dont l'exercice portait sur les codes barres mais je ne l'ai pas à proximité. (juste la moitié de la france nous sépare

)
Etant donné que l'exercice concluait avec les équations logiques de certaines opérations de traitement, je pense que c'est plausible.
Toute table de vérité a un équivalent en équations, à nous de la simplifier. Les tableaux de Karnaugh sont là pour ça.
Je veux le traiter ainsi, mais c'est laborieux, et je voudrais programmer en C une application pour gérer les tables. Mais comme je ne sais pas acquérir les données d'un xls/ods, alors la saisie des données est une perte de temps en elle-même.
EDIT 13/12/2014 : je suis sur la voie, j'ai réussi à générer des tables de karnaugh. Les simplifier automatiquement sera plus compliqué.
EDIT 15/12/2014 : je parviens à créer les équations simples. Mais il manque encore l'élimination des redondances et une seule configuration de table est testée à chaque fois, alors d'autres configurations peuvent amener d'autres résultats immédiats.
Après j'essaierai peut-être les groupements en ou exclusif et le complément. Ou encore du pur calcul de simplification.
Dans tous les cas je calculerai les équations bit par bit des la table de code barre 128 que tu as montré, excepté le code stop qui est plus long.
EDIT 15/12/2014 : je crois que je vais apprendre et tester le langage prolog ou sa famille de paradigmes, ce pourrait être plus simple que développer tout moi-même.
katvador le 15/12/2014 à 19:36
Pourrait-tu poster ton code s'il te plait ?

J'avoue que l'idée me plait bien...
Même si c'est celui avec la base de données...
linkakro le 15/12/2014 à 21:18
Alors je le posterai avec les équations obtenues quand j'aurai un peu plus avancé. Pour l'instant il manque quelques travaux. Mais pour ce sujet lié à la calculatrice TI, le calcul des équations logiques dans un autre environnement n'est qu'une annexe, donc ce n'est pas ma priorité.katvador le 16/12/2014 à 21:09
Je voulais dire poster le code tel quel...
C'est à dire le premier composé sans équations. ..
linkakro le 16/12/2014 à 21:32
Tu t'adressais donc à ld et pas à moi.
Tandis que je ne parle pas du programme de gestion de code barre de ld mais du moyen que j'emploie pour calculer les simplifications.
Bonne question demander le code de ld.ld le 16/12/2014 à 21:34
"Ld" Tu peux m'appeler Louis... MDR
Prgm CODE128 V0
EN TEST
Code
:EffDessin
:0->Xmin:0->Ymin
:94->Xmax:62->Ymax
-Mettre tout les symboles de la l'alphabet "B" du site dans la chaîne 0.
https://fr.wikipedia.org/wiki/Code_128
De " " (espace) à "Stop". Pour les "FNC 1" ect... Il faut se débrouiller pour le remplacer par un symbole inutilisé de la calto et que çà ne fasse qu'un caractère dans la chaîne.
-Mettre tout les "Modèle Barre/Espace" dans la liste L1.
Valeur 0, espace, L1(1)=11011001100
Valeur 1, 1, L1(2)=11001101100
Valeur 2, 2, L1(3)=...
Code
:Input Chaîne1
:"caractère Début B"+Chaîne1+"caractère contrôle"+"caractère Stop B"->Chaîne1
:longueur(Chaîne1->L
:For(A,1,L)
:carChaîne(Chaîne0,sous-Chaîne(Chaîne1,A,1))->L2(A)
:End
:0->B
:For(A,2,L-2)
:B+(A-1)L2(A)->B
:End
:103partEnt((104+B)/103)->L2(L-1)
:1->X
:For(A,1,L)
:For(B,1,11)
:L2(A)---- 1er 2ème 3ème chifre du modèle dans V
:If V=1 (ou If V:...) Verticale X
:X+1->X
:End
:End
katvador le 16/12/2014 à 22:12
@Linkakro
Desole pour la question peu précise, mais l'équation que tu crée est de toute facon quasiment indispensable !
@Ld
Excuse moi, je ne savais pas que tu etait en train de le recopier...
Sinon je commence à le réécrire, mais c'est super chaud de stocker toutes ces données !
Je comprend pourquoi tu cherchais une équation...

ld le 16/12/2014 à 22:37
Hey attention il ne fonctionne pas encore !
On tient le bon bout mais va falloir encore bosser.
Tu as compris pourquoi je cherche une formule pour convertir la valeur en modèle barre/espace !
Effectivement ce serai bien plus simple !

katvador le 16/12/2014 à 22:51
Pour qu'il fonctionne, il faut (juste

) rentrer toutes les valeurs... Sinon, tu edite ton prog en temps réel

Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.