Yomgui

Aller au contenu | Aller au menu | Aller à la recherche

Autres projets

Ici mes autres projets de développement en cours.

Fil des billets - Fil des commentaires

mardi 14 juillet 2009

Wikions ensemble

Pour ceux qui ne sont pas encores (quoi!) au courant, j'ai fait un Wiki! En même temps c'est facil on tombe direct dessus avec la racine de mon domaine. Vous retrouverez dessu plus amples infos sur mes développements par exemple.

A propos, je reconstruis Helios pour être plus proche d'un model comme celui de Poseidon (la couche USB). Vous pouvez d'ailleurs voir ce model sur ce fameux Wiki ici.

lundi 30 mars 2009

Test Python/PIL pour la vidéo

Je me suis amusé avec Python et le module PIL (python et les ''thirdparty'' sont disponibles pour MorphOS ici) à faire un script pour tester une moulinette qui me sort le waveform d'une image... c'est très utile en vidéo ;-)

Voilà la sortie du script pour une image d'exemple: waveform_sample.jpg

PS: non c'est pas une échographie de ma femme!

vendredi 27 mars 2009

Helios: Taaadaaa !!

Outre le fais que j'ai trouvé un titre pourri, Helios en version 0.3.323 est sortis depuis ce matin. Retrouver le chez votre libraire habituel sur Aminet: Helios_0.3.323.lha

Lire la suite...

jeudi 26 mars 2009

Helios: et la lumière fut !

Bon alors je me suis couché tard (4h...) donc la lumière elle vient pas de moi là... ... Mais de ma pile Firewire Helios.

J'ai codé le mode isochrone, qui au passage n'aura pris que 2 jours, et fait un petit code de test pour charger des vidéos depuis une caméra supportant le protocole iec61883 et sortant en format HDV (MPEG2-TS) ou DV.

Et ça fonctionne !!!

Bon faut que je mette au propre un peu tout cela et je fais une release...

PS: ouai c'est pas très étoffé comme news, mais ZZZZzzzzzz

lundi 2 mars 2009

Helios: 299 792 458 m/s

Avant la petite gastro de ce w.e. (ouai... encore!) j'ai fais quelques tests de vitesses avec le nouveau design d'Helios.
En voilà le récit...

Lire la suite...

mercredi 18 février 2009

Helios Reloaded

Quand ça va plus rond... il faut tout mettre au carré! Logique...

Lire la suite...

vendredi 30 janvier 2009

AV/C 1394 ou comment péter les plombs...

Alors que Hélios poursuis son développement vers une meilleur compatibilité avec le monde asynchrone, l'avc1394.device me cause bien des soucis...

Lire la suite...

lundi 26 janvier 2009

Helios: ayé!

Version pre-alpha pour bêta-bouffons-testeurs bientôt disponible... Sur aminet

EDIT: Je rajoute une petite capture de FWInspector, l'interface graphique sous MUI pour montrer et faire quelques manipulations sur les devices connectés en FireWire.

FWInspect #001

Cliquez sur l'image pour voir en plus grand.

jeudi 15 janvier 2009

Helios: AV/C(ésar)

J'ai commencé hier l'avc1394.device. Ceci permettra le contrôle de tous les device firewire supportant l'AV/C donc

...par exemple les caméras ;-)

En plus ceci donnera un exemple au programmeurs de comment créer un .device et utiliser la helios.library.
Et moi cela me valide mon SDK!

EDIT du 16.01.2009:

Ce qui devait arriver, arriva! L'écriture de l'avc1394.device m'a montré de sérieux problèmes de design quand a l'utilisation de l'helios.library! En conséquence de quoi je stop ce développement et reprend le design interne d'Helios pour le refaire encore.

Pour plus de précision, il s'agit de la gestion des requêtes et du contrôle du flux des transactions entre l'applicatif et le driver OHCI (Helios quoi). Cela me change mes structures, la façon dont l'applicatif donne une requête et la façon dont il en reçoit le résultat. En gros c'est toute l'intelligence du driver que je revois...

Bah ouai c'est ça le problème quand on fait pas un port, on est le responsable du design sur qui frapper.

lundi 12 janvier 2009

Helios: enfin stable!

Oula que j'ai bien travaillé!

Helios est enfin stable depuis samedi (et même encore plus le dimanche :-D)!

C'est donc une étape majeur dans le dév, où j'ai d'abord préférer stabiliser les requêtes asynchrones vers les nodes et donc la gestion des réponses aussi.

Donc update dans le status depuis le billet suivant:

  • Gestion des resets du bus et des packet SelfID: 100% pas vu de bug depuis.
  • Envois de requêtes asynchrone: 92%, manque juste locker les buffers DMA pouvant être utilisés par les applications en attendant qu'elles lisent les données inscrites.
  • Gestion ROM locale: 85%, je recode tout, depuis la processus de lecture dans la couche device. Il faut faire la lecture de la structure complète, pour l'instant je ne lis que le Bus Info Block. Définition de la ROM locale pas faite non plus.
  • Couche devices: 90% fonctionnelle mais elle me plaît pas encore sur la façon dont elle dialogue avec les applications.
  • API publique (SDK): 20% mais quelques changement à faire.
  • Interface MUI de configuration et de status: 0% pour la config, mais j'ai commencé FWInspect, un petit outil pour voir et utiliser le bus.

Yomgui

vendredi 19 décembre 2008

Helios: retards...

Bon, bah cela ne sera pas pour noël :-(

J'ai perdu beaucoup de temps à fixer certaine routine/algo, j'en suis un peu déçu. Surtout qu'il manque encore une couche pour que cela soit déjà utilisable rien qu'en mode requêtes asynchrones (couche device).

Pour l'instant le bilan:

  • Trouver les bridge PCI IEEE1394 et les initialiser: 100%, fonctionne correctement.
  • Gestion des interruptions PCI venant du bridge: 50%, mode ISO non supporté.
  • Gestion des resets du bus et des packet SelfID: 95%, tout est codé mais bug dans la mise à jour de la topologie.
  • Gestion des DMA: 100%, création des buffers pour les descripteurs et gestion opérationnelle.
  • Envois de requêtes asynchrone: 90%, création des packets, envois, gestions des événements, attente réponses et décodage.

Tout les types d'envois gérés, sauf stream et "block". Ce dernier n'est pas géré car je dois implémenter un système de réservation des buffers DMA consommés pour pas qu'ils soient détruit (quasi codé mais pas utiliser encore).

  • Gestion ROM locale: 80%, les requêtes locales sont codées et opérationnelles, manque juste la définition des unités dans la ROM.
  • Gestion des requêtes asynchrone venant de l'extérieur: 0%, pas commencé.
  • Envois/réception de données en isochrone: 0%, pas commencé.
  • Gestion logique (devices): 15%, juste commencé mais de toute façon j'aime pas... à refaire.
  • API publique (SDK): 10%, juste commencé.
  • Interface MUI de configuration et de status: 0%, en attente du SDK.

Bon c'est pas si méchant pour déjà avoir quelque chose, mais je pense pas avant le 15 Janvier 2009.
J'espère avoir tout fonctionnel pour la mi-février.

PS: ce qui donne déjà une bibliothèque de 55Ko.

Yomgui

lundi 8 décembre 2008

Un cadeau de noël pour MorphOS?

Depuis longtemps attendue pour être ensuite abandonnée, car tuée sur l'hôtel des profits financiers (surtout ceux d'Intel) par ses créateurs, voici de retour la venue de la pile FireWire/IEEE1394/Lynx/i.Link_<inserer ici votre marque> spécialement pour notre OS préféré, le bien nommé MorphOS!

Voui, voui, voui, vous avez bien lu!

Si vous n'avez pas bien vu encore, j'ai eu 30 ans en août!
Hein ? C'est quoi le rapport ?? Comme vous le voyez sur mon billet d'anniv, j'ai eu une caméra vidéo au format DV (HDV même) et donc avec son petit port 1394...
Ouai c'est cool mais c'est pas du tout cool sous Window... la moindre application faisant correctement de la vidéo est payante, et encore ce sont des usines à gaz!

Guerre de choix s'offre donc à vous que d'avoir un bon vieux Mac (pas le cas pour moi et cela résous pas le problème du prix, oh non!) ou bien de pirater emprunter un soft à un ami pour finalement vous dire que ouai c'est vraiment une merde un casse tête pour travailler avec.

Bon, bah y a pas trop le choix et comme je le dis régulièrement on est jamais mieux servis que par soit même.

Donc la caméra c'était en août, le bilan pas très joyeux de l'existant c'était début septembre, le voyage au Canada (histoire de dire que l'achat en valait le coup) c'était fin septembre, donc le début du projet c'était fin septembre - début octobre.

Comme tout bon développement qui se commence, j'ai commencé par voir si cela n'était pas déjà en cours (cf le premier lien du billet). J'ai donc contacté Sonic qui a en premier tenté un port de la pile Linux (cf toujours le premier lien, décidément!). Malheureusement au vu du Firewire en 2006, abandonné par ses pères, il décida qu'il ne valait plus la peine (dixit Sonic, que j'ai eu par e-mail) de continuer. Fin de l'histoire.

Dommage pour les utilisateurs, cool pour moi (ouai enfin je me donne du taf de nuit en même temps...) je saute sur l'occasion et commence à réunir la documentation après avoir vérifié le chipset en place dans mes Peg1 et 2, un VIA VT6306 (ieee1394a-1995, 3 ports). Ce qui nous donne:

  • la norme IEEE1394a-1995, ainsi que son amendement de 2000 (utile pour certaines explications sur les paquets du type Self-ID et la ROM) ;
  • la norme OHCI1394 qui elle est une couche d'abstraction pour les concepteurs de chipset comme VIA et qui nous facilite les choses pour nous les concepteurs de drivers ;
  • le datasheet du VT6303, utile pour le format des paquets de la couche PHY.

En même temps que je me prend un gros mal de crâne à lire tout cela en même temps, je passe un peu de temps sur l'implémentation sous Linux histoire de voir si j'ai bien compris les docs tordues peu triviales du Firewire.
Et zou passage au code début octobre en commençant par utiliser les nouveaux includes du SDK de MorphOS 2.x dont certains fichiers pas encore publiques quand j'écris ces lignes par ailleurs (lib PCIX pour remplacer openpci par exemple).
D'ailleurs j'avais jamais attaqué le PCI sur MorphOS, c'est tout de même bien ce projet ;-)

Nous voilà donc aujourd'hui (début décembre) et qu'en est-il?
Et bien après plus de 2 semaines sur un bug des plus crétin subtile, inventé par votre crétin de subtile serviteur, je gère complètement la modification temps-réel de la topologie du bus (connections/déconnections des devices)et quasiment le mode asynchrone en envoi-réception. Il me reste à:

  • débuger le code de réception des acquittements des requêtes en transmission ;
  • gérer complètement et correctement les paquets de types 'lock' et 'phy' (toujours en asynchrone) ;
  • envoyer des paquets de réponses aux paquets de requêtes reçus ;
  • terminer le code de la couche 'device' qui sera vue par l'utilisateur et par où il pourra les contrôler ;
  • coder toute la partie isochrone, le mode le plus intéressant bien-sûr ;
  • faire un petit 1394raw.device pour déjà s'amuser avec.

Vous l'aurez compris (comment ça non ?!) cette pile ne s'occupe que du transport de données entre les nœuds sur le bus 1394, le contrôle sera donc laisser au soins de bibliothèques en xxxxxxx.device (genre dv1394.device ou bien sbp2.device et même avc1394.device).
Si tout cela marche bien j'espère pas moins que sont intégration officielle dans MorphOS 2.x (3.x?) à l'instar de son homologue USB: Poseidon.

Voilà, voilà pour les nouvelles ;-)

PS: Je me disais bien que j'avais oublié quelque chose d'important: cette pile n'est pas un port, mais bien un truc développé sur et pour MorphOS!