Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Protocoles USB utilisés par CASIO, screenstreaming
Cakeisalie5 En ligne Membre de CreativeCalc Points: 1764 Défis: 10 Message

Protocoles USB utilisés par CASIO, screenstreaming

Posté le 28/03/2017 18:15

La documentation sur les protocoles de CASIO via USB en général étant assez légère sur certains points, j'en mets les gros traits ici, avec un focus particulier sur le screenstreaming, sur lequel je travaille en ce moment.

CASIO utilise un VendorID, 0x07cf (qui lui est officiellement réservé), ainsi que deux codes produit :
- 0x6101 : fx-9860G, Protocole 7.00 (voir fxReverse) :
bInterfaceClass       255 Vendor Specific Class
bInterfaceSubClass      0
bInterfaceProtocol    255

- 0x6102 : fx-CP400, SCSI :
bInterfaceClass         8 Mass Storage
bInterfaceSubClass      6 SCSI
bInterfaceProtocol     80 Bulk-Only


La Prizm utilise les deux codes selon le protocole qu'elle utilise : protocole 7 ou SCSI.
Pour le mode projecteur, elle utilise le protocole 7 (avec le type OHP, 0x0B) et le sous-type TYP02, avec le sous-header suivant (exprimé en C) :

struct typz_subheader {
    /* ASCII-hex size */
    uint8_t size[6];

    /* dimensions */
    uint8_t height[4];
    uint8_t width[4];

    /* one: we are number one but it is in ascii (always "1") */
    uint8_t one;

    /* encoding algorithm:
     * - RC2: 16-bit mode;
     * - RC3: 3-bit mode (1 nib./pxl, red-green-blue-trash)
     * - RM2: 2-bit mode */
    uint8_t enc[3];
};


Puis nous avons les données, et, semble-t-il, pas de checksum (mais je me suis possiblement emmêlé les pinceaux pour ça). Le mode projecteur utilise le mode 2-bit (RM2), qui semble correspondre à des nuances de gris.
L'hypothèse a été levée que c'était pour de la compatibilité, mais ça m'étonnerait que les anciens projecteurs/logiciels gèrent le TYPZ1/2... enfin, sauf si cela avait été prévu à l'avance (ce qui m'étonnerait quand même, sinon, le TYP01 aurait un sous-header aussi).

Ensuite, le SCSI utilisé par la Prizm. Ma source est ici, même si Brandon Wilson, dans son logiciel, n'indique pas qu'il s'agit de SCSI, j'ai dû recouper des informations pour en arriver à cette conclusion. Il s'agit d'un protocole standard, ce qui explique notamment pourquoi il est possible d'accéder aux fichiers de la Prizm sans logiciel spécifique.

Les commandes sont précédées par les wrappers de BBB, les entiers multi-byte étant encodés en little-endian. Brandon Wilson utilise 0x44434241 ('ABCD') comme Tag, et 0 comme LUN.
Puis viennent les commandes en elles-mêmes (voir codes). Au-delà des commandes normales (structures), Brandon Wilson utilisant les versions 12 bytes des commandes (0x25, 0x28, 0x2A), CASIO utilise les commandes réservées pour du vendor specific pour du screen streaming, utilisant des CDB de 16 bytes.
- 0xC0 semble être une requête pour savoir si un écran est disponible ;
- 0xC1 est la requête de l'écran en elle-même ;
- 0xC2 est la requête pour commencer le screenstreaming (?).

Et j'en suis là. J'éditerai au fur et à mesure de mes découvertes et analyses.

Merci à Nemhardy et -florian66- pour leur qualité de cobayes


-florian66- En ligne Ancien rédacteur Points: 2335 Défis: 20 Message

Citer : Posté le 28/03/2017 19:58 | #


C'est intéréssant de poster l'avancement du projet de screenstreaming pour prizm

@Cake : si tu as d'autres tests à faire, n'hésite pas à demander !
In Arch, I trust ! And you ?

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 65 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd