logo

Préface
WTF?
Tableau comparatif
PHY
MAC
Électronique: les étiquettes
Électronique: le TRX
Hackitty-hack
Code et schémas
Glossaire

Todo...

todo...

Communication audio avec l'emetteur Pricehax V1 et V2 (purement inventé):

Codage par distance entre impulsions. Chaque impulsion est de la meme duree (un "tick" dans l'audio).

Pour un fichier audio raw à 48000Hz, un tick dure 4 echantillons: max, max, min, min.
Soit pour de l'audio 8 bits: 127,127,-128,-128.

Le fichier doit commencer par 1 seconde de silence.

Chaque bit du code à transmettre en IR est ensuite codé par la pause entre les ticks. La pause peut prendre que deux valeurs, pour coder soit un 0 soit un 1. La transmission du code hexa se fait LSB en premier par blocs de 2 bits (c'est defini par le PP4, pas par l'emetteur). Il n'y a pas de checksum et la communication est unidirectionnelle (audio oblige !).

Pause de 12 echantillons = 0. Pause de 6 echantillons = 1.

Par exemple, pour envoyer 0x58 (0b01011000):
Premiere paire: 00
Seconde paire: 10
Troisieme paire: 01
Quatrieme paire: 01

Donne:

Tick, pause de 12, tick, pause de 12
Tick, pause de 6, tick, pause de 12
Tick, pause de 12, tick, pause de 6
Tick, pause de 12, tick, pause de 6
Tick (pour terminer).

Totalisant une duree utile de 4+12+4+12+4+6+4+12+4+12+4+6+4+12+4+6+4 = 114 échantillons, soit 2.38ms.
A noter que c'est la transmission Pricehax vers Dongle uniquement, et pas la transmission IR, qui est encore dans un autre format !

Le dongle se met à transmettre en IR quand une pause de plus de 20 echantillons est detectee. Pas besoin de transmettre un code "emettre !", donc, il suffit juste de silence.

Une onde comme celle-ci (downsamplée à 44100Hz, ne comptez pas les echantillons):

Donne: Long-long-long-court-long-long-court-long, soit 00010010. Soit, dans le bon ordre: 10000100 (0x84).

 

Changer de page:

84 est le code protocole: 4 (PP4C) OR 80 (demande d'ACK).
Comme la commande est broadcast, le PLID est tout à zero.
AB est la commande "changer de page".
xx est formé en binaire comme suit:

00pppddd

Avec p le numero de page, et d la duree (4, 8, 30 secondes... voir menu de Pricehax).
SK a de fortes chances d'être à zero...
Le CRC est un CRC16 CCITT des octets precents. MSB en premier.

Exemple:

84 00 00 00 00 AB 09 00 00 F2 A7
Demande d'afficher la page 1 pendant 4 secondes.

 

Ping DM:

A envoyer pendant environ 4 secondes pour être sur de reveiller l'ESL.
Il semblerait que le payload puisse être n'importe quoi, tant qu'il commence par 00 et qu'il fait 23 octets.

 

Changer les segments:

0x84 PLID PLID PLID PLID 0xBA PAGE 0x00 0x00 SEGMENTS CRCS 0x00 0x00 0x09 0x00 0x10 0x00 0x31 CRC CRC

Voir sur la page precedente comment calculer le PLID depuis le code barre de l'ESL.

23 octets soit 23*8 = 184 segments adressables max.
Page: juste le numero de la page a mettre a jour (0 a 15).
CRCS: CRC16 MSB first des segments (ignoré ?).
CRC: CRC16 de toute la trame, utilisé ! Pas bon = pas de reaction de l'ESL.

 

More to come...

footer
symbol symbol symbol symbol symbol