Logiciel de gestion de course home made


Message

LanciaB
Jedï d'honneur

Voir plus


Date du message : lundi 13 avril 2015 à 13h55


Superbe....dommage que ce soit uniquement pour le digital !

J'avais développé en 2007 un soft maison très simple pour la power base RMS Scalextric analogique, en Liberty Basic (je suis un "vieux" programmeur, j'ai commencé sur un.....ZX81).

Ca marchait pas mal...faudra que je le ressorte des tiroirs.

http://www.cigaleslotracing.fr/

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 14h42


En fait l'idée de base n'est pas de faire un soft que pour le digital.
J'étais parti dans l'idée de faire un soft pour aller avec la nouvelle PowerBase Scalextric (Arc One) mais en permettant un comptage de plus de deux voies.
Et puis comme je n'ai pas encore la doc du protocole et que j'ai un scalex digital, je me suis dit qu'en attendant ça ferait l'affaire.
Par contre c'est vrai que le digital offre tellement de possibilité au développeur qu'on se dit rapidement que sur de l'analogique on va être bridé. A part compter les tours et une gestion de fuel limitée je n'ai pas vraiment d'idée, on ne peut pas piloter l'alimentation de la piste donc les fonctionnalités sont forcément limitées.

Une fois que j'aurais terminé la v1 en digital SSD j'envisagerais la suite.
Carrera Digital, pourquoi pas de l'analogique (DS racing ou autre je ne sais pas quel système est le plus utilisé), portage sur Android pour les nouvelles PB Bluetooth je ne sais pas trop.
J'aurais plus de temps j'aurais bien réfléchi a faire de l'open source pour que d'autres développeurs viennent mettre leur contribution mais c'est tout de suite un projet d'une autre ampleur. C'est pas tout mais j'ai un vrai travail à côté !

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 14h44


Shaken a écrit :
Non ce n'est pas un sdk carrera.Mais il est assez complet et avec le retro enginneering des allemands tu peux facilement ajouter tes fonctions.

Ca m'intéresse, tu aurais un lien ?

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 15h10


Mince comment j'ai pu rater ce post !
Bon il est pas super vieux mais quand même !
Oui car je suis développeur .Net aussi !

En tout cas, bravo pour l'UI très gaming mais très moderne (ça tranche par rapport à l'existant), et la rapidité pour sortir une beta !

- Tu open-sources le truc ou tu comptes le vendre ? (les 2 sont louables !)
- Pourquoi du Winform et pas du WPF ? Car tu avais beaucoup de libs déjà prêtes ?
- Tu passes par l'USB ou le Bluetooth ?
- S'il existe un SDK .Net pour le proto Carrera qui reverse engineere le protocole BT, ça doit être 'relativement' jouable de le réécrire en ObjC/Swift pour iOS et Java pour Android non (surtout Java du coup !)

Bon ma dernière question concerne Carrera, mais c'est ce qui m'intéresse surtout ;-)

EDIT : pour tes versions iOS et Android, connais-tu Xamarin ? C'est un Framework (et même un IDE) écrit par Miguel de Icaza, celui qui a porté le Fx .Net sur Linux (Mono). En gros, ça permet d'écrire ton code NATIF iOS et Android en C#. Les API sont celles de chaque OS, mais déjà pour le langage et le code partagé et non lié aux OS mobiles, c'est pas mal !

Message modifié le lundi 13 avril 2015 à 15h17 par kall

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h29


kall a écrit :
- Tu open-sources le truc ou tu comptes le vendre ? (les 2 sont louables !)

En fait pour le moment ni l'un ni l'autre car je n'ai pas le temps nécessaire.
J'essaye, pour commencer, de me faire plaisir avec un logiciel que j'estime adapté à mon utilisation et pour la suite je verrais. Certainement que je passerais par une phase de partage de la version et en fonction des retours j'aviserais. Mais clairement ce n'est pas un objectif pour moi.

kall a écrit :
- Pourquoi du Winform et pas du WPF ? Car tu avais beaucoup de libs déjà prêtes ?

Simplement parce que j'avais un background plus important et que dès le départ je voulais me concentrer sur le pilotage de la base SSD et pas sur l'IHM. Mais le développement est fait de telle sorte que changer l'ihm serait très simple.

kall a écrit :
- Tu passes par l'USB ou le Bluetooth ?
Pour l'instant USB car je n'ai pas encore la documentation du protocole bluetooth. D'ailleurs je pense que la base digitale bluetooth n'est pas encore sortie.
kall a écrit :
Bon ma dernière question concerne Carrera, mais c'est ce qui m'intéresse surtout ;-)

J'attends de voir ce qu'est exactement l'API .Net Carrera pour juger de la complexité, mais je ne vois pas pourquoi ça serait plus hard que le SSD. La limite que je vois pour moi c'est que je n'ai pas de matos Carrera pour faire les tests en cours de développement et clairement c'est impossible sans. Pour faire le développement SSD + toute la partie IHM + stockage des données etc. j'ai bossé environ 60/70 heures, c'est pas beaucoup. Je me dis qu'une fois que tout sera rodé, développer l'interface avec Carrera ne devrait pas prendre hyper longtemps...

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h32


kall a écrit :
EDIT : pour tes versions iOS et Android, connais-tu Xamarin ? C'est un Framework (et même un IDE) écrit par Miguel de Icaza, celui qui a porté le Fx .Net sur Linux (Mono). En gros, ça permet d'écrire ton code NATIF iOS et Android en C#. Les API sont celles de chaque OS, mais déjà pour le langage et le code partagé et non lié aux OS mobiles, c'est pas mal !

Tout a fait, je connais et je suis parti sur des library portables pour tout ce qui peut l'être.
Du coup pour iOs et Android il ne reste que la partie IHM à faire et également l'interface avec le matériel pour la communication car bien entendu les library pour l'utilisation du port série ne sont pas portables.

Message modifié le lundi 13 avril 2015 à 16h32 par dd32

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h34


Je suppose que tu as (ou tu vas) abstraire toute l'API de communication avec une base digitale quelconque dans une classe abstraite et/ou interface, de façon à mutualiser un max de choses, et qu'il "suffise" de coder l'implémentation concrète pour chaque marque.

Dans ce cas, ça peut m'intéresser de coder la partie Carrera ! Reste à trouver un câble USB !

Et ça t'oblige même pas à me livrer tes sources ! Les assemblies suffiront !

Message modifié le lundi 13 avril 2015 à 16h34 par kall

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h41


Oui c'est le cas. J'ai une classe abstraite GenericDigitalHI et une interface IGenericDigitalHI associée.
Avant qu'on s'embarque la dedans il va falloir que je termine quelques refacto et que je valide tout sur des courses plus importantes que celle d'hier, mais dans l'absolue on pourra le faire ouais.
D'autant qu'au final, l'interface avec la Power Base c'est assez simple.

La seule chose c'est que toute les méthodes de la classe de base sont orientées SSD, je ne connais tellement pas le protocole Carrera que je ne sais pas s'il y a des choses qui sont à faire différemment dans l'approche.

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h44


De mon côté, il me faut effectivement le câble (ça c'est jouable) mais idéalement, il me faudrait aussi une pitlane !
Sinon je ne vais rien pouvoir tester côté refuel !

Au fait, qu'appelles-tu SSD ? C'est le nom de Scalextric Digital ?

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h46


Oui c'est ça, pardon.
Pour l'instant, de mon côté je n'oblige pas a faire le refuel dans une PitLane car c'est trop restrictif pour un paquet de tracé qui n'ont pas de pitlane.
Du coup le pitstop peut se faire (pour l'instant en tous cas) n'importe ou sur la piste.
C'est un choix certainement temporaire (encore que), mais encore une fois adapté à mon utilisation du moment.
Sur mon 2 voies actuel on a une pitlane, mais si on passe en 4 voies on va virer la pitlane et plutôt "dédier" une voie sur les 4 pour les pitstop ou pour les remises en piste après sortie.

Rien n'est définitif mais j'essaye de rester simple dans l'approche pour ne pas tomber dans les "travers" que je reproche aux autres logiciels (trop de paramétrage, trop de matos à brancher ou bidouiller etc.)

Message modifié le lundi 13 avril 2015 à 16h55 par dd32

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h46


Et sinon, j'ai trouvé un projet d'API Carrera sur Codeplex. Je sais pas si c'est le même lien que celui évoqué plus haut, mais ça doit permettre de voir le genre de méthodes qui sont exposées.

https://carreradotnet.codeplex.com/

EDIT : j'ai regardé vite fait les sources, ça n'a pas l'air monstrueux, et plutôt bien fait, question abstraction et héritage !

Message modifié le lundi 13 avril 2015 à 16h48 par kall

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 16h58


Oui je suis assez d'accord avec ton approche !
Et effectivement, je pensais resté adhérent au fonctionnement proposé par les constructeurs, mais c'est pas bête de permettre le refuel n'importe où dès l'instant où c'est géré par le logiciel.
Mais dans ce cas, comment sera géré le ralentissement de la voiture (sur Carrera c'est ce qui se passe) ?

As-tu vu le lien pour l'API Carrera .Net ? Car nos posts se sont croisés !

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 17h03


Effectivement ça a l'air pas mal fait.
Par contre je vois un truc a refaire c'est l'utilisation du SerialPort.
C'est une classe pourrie de chez MS, elle marche très mal.
Je l'utilisais au départ et j'ai finalement trouvé quelque chose de beaucoup plus fiable.
Mais les modifications sont mineures.
Quand j'aurais le temps je regarderais le coût d'intégration de ces classes.

Mais pour le moment j'ai un paquet de boulot (du vrai!) en retard !!!

EDIT : j'ai regardé plus en détail le code mais j'ai l'impression qu'il manque des choses.
Chez Carrera Black Box et Control Unit c'est quoi ? Du digital ou de l'analogique ?

Message modifié le lundi 13 avril 2015 à 17h06 par dd32

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 17h11


Arf toi aussi tu postes du taf
Je suis développeur web back-end niveau taf, donc je t'avoues n'avoir jamais testé les classes MS sur la communication USB / série, je te fais confiance !

La Black-box est la première unité digitale qu'ils ont sorti, la Control Unit est la suivante (et actuelle).

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 17h20


Et ouais, du coup ma journée de taff à pris un petit coup ! (mais bon j'ai la chance de travailler pour moi, donc je rattrape mes heures le soir...)

Ok donc c'est du digital, du coup il manque toute la partie "réponse à la box".
La on a toute la lecture des paquets envoyés par la box, ça nous donne le temps de passage des autos etc (read sur le port série)
Mais il n'y a rien pour lui donner les instructions (write sur le port série). Par exemple la puissance de l'auto si tu veux limiter la vitesse des autos sur un trackCall.
Donc il y aurait la moitié du taff faite mais pas l'autre, sauf si la box Carrera travaille totalement différemment de celle de chez Scalex.

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 17h41


Oui je pense que tu as raison. Apparemment, le gars à reproduit l'interface (au sens API) de ce qui est utilisé par le logiciel de gestion de course de Carrera.
Donc ça reproduit la lecture des messages émis par la Control Unit ou la Black Box.

Pour déblayer le boulot, et dans le cas idéal, il faudrait que je m'offre le câble Carrera (bien que les câbles indés soient moins chers), leur logiciel de course, et une pitlane.

Car la première chose à faire est évidemment de savoir ce que peut faire et ne pas faire un logiciel externe.

Ceci dit, si je m'en réfère à ce que peuvent faire les applis mobiles de Carrera (en BT, et je ne les ai pas non plus), on peut clairement "écrire" vers la Control Unit, puisqu'on peut régler tous les paramètres de freinage, vitesse, taille du réservoir, etc...

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 17h55


Un bon indicateur est de voir ce que sait faire PC Lap Counter avec ces box. Il est très complet et en général il exploite le matériel à fond.
Même si je ne suis pas fan pour mon cas d'utilisation, ce soft reste la référence pour moi.
Après ce qu'il faut voir c'est la documentation du protocole Carrera. En théorie la lecture du document apporte toutes les infos nécessaires (c'est moins cher que d'acheter tout le matos pour faire des essais !).
Si tu trouve cette documentation, je pourrais la lire pour comparer rapidement à celle de Scalex que j'ai lu et relu 30 fois

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 18h11


Ce genre de doc n'est en principe pas public, donc s'il existe, ce doit être par reverse engineering ! Comment l'as tu trouvé pour Scalex ?

Message

dd32
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 18h23


Ha mais au contraire, Scalex le publie, d'ailleurs ils ont tout intérêt à le faire, ça aide les développeurs à faire des produits pour eux.
Tout comme DS Racing qui publie son protocole d'ailleurs.
Mais pour Carrera je n'ai pas cherché et je ne sais pas comment ils se positionne. Je regarderais à l'occasion.

Message

kall
Bargeots

Voir plus


Date du message : lundi 13 avril 2015 à 18h30


Un petit parallèle te donnera toute la philosophie de ces constructeurs, je trouve que c'est assez vrai, sur tous les aspects (qualité & design vs. ouvertures)

Scalex = Google
Carrera = Apple

Je viens de regarder la page de PC Lap Counter en mode Carrera Control Unit, ça donne effectivement une idée de ce qui peut être fait ou pas.

Ce que j'en retiens, c'est que PCLC va souvent proposer de se substituer aux fonctions de la CU, ou alors de les utiliser, mais sans pouvoir tout exploiter du coup !

http://www.pclapcounter.be/carrera_digitial_30352_fr.html

Surveiller Imprimer