Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - jfs59

Pages: [1] 2
1
Vos projets / TCO dcc en lazarus
« le: novembre 11, 2020, 01:41:44 pm »
Merci aux personnes qui ont sympathiquement pris la peine de répondre aux interrogations d'un novice.




2
Bonsoir

Citer
Je veux dire qu'il n'y a pas de code sur le fil pour piloter un servo c'est du 0-5V.

Bah si désolé c est une forme de codage car c est du pwm avec variation du rapport cyclique entre deux bornes de timing
pas du tout ou rien

Cordialement

3
Bonjour
le forum n'a pas l'air d’apprécier les vidéos "embeded"

http://www.youtube.com/embed/krCn5go2WkU?rel=0

pour les petits curieux comme moi

cordialement jfs

4
Débuter / Centrale dcc minimaliste
« le: novembre 03, 2020, 06:43:57 pm »
Merci aux personnes qui ont sympathiquement pris la peine de répondre aux interrogations d'un novice.

5
Citer
Liste les tailles des décodeurs, liste des courants maximaux.
Les deux autres ne sont pas lisibles (ou je n'y suis pas arrivé…)

cvsummary.csv et reservedCVs.csv

contiennent bien les 2897 decodeur mais tres peu d'infos autres

parfois on trouve des trucs du genre

Codigo de Bloqueo de CVs;   Codigo de Bloqueo;                        Compensacion de velocidad minima. Sin BEMF se suma a CV2 (1-100);

pour reserved et du genre

Direccion principal de la locomotora (1-127);   Velocidad minima(1-128);Velocidad minima(1-128);   Aceleracion (0-50);   Desaceleracion (0-50);   Velocidad maxima (0-255);   Velocidad media (50-120);   Version del programa ;   Numero de Fabricante asignado por NMRA;

Primary Address (1-127);      Acceleration Rate (0-255);   Braking Rate (0-255);         Manufacturer Version ID;   Manufacturer ID;

Gaugemaster Opti DCC Loco Decoders   Primary Address;   Start voltage;   Accel Base Rate (CV3);   Decel Base Rate (CV4);   Maximum Voltage;   Midpoint Voltage;   Version ID;   Manufacturer ID;


pour summary

mais c'est vide a 99.99 %

6
Citer
Mais, et tu l'as dit toi même : ce n'est pas la bonne piste.
Même toi, tu te demandais pourquoi on devait faire des choses en dehors du programme..
.

Bah oui ca me semble une évidence donc je jette l'éponge je vais pas plus loin même si c'était un challenge (enfin un petit challenge  ::))

J'avais déjà fait le panneau de choix d'images mdr...

je vais continuer a suivre en mode silencieux ++

7
sinon j'ai ca
lien supprimé

écris en lazarus ce matin il permet de charger le tsv d'ajouter une ligne de supprimer et de sauver

et bien d'autre chose si je m'amuse encore un peu

comme ouvrir une fenetre en cas d'ajout choisir l'image etc ...

8
Je viens de voir que dans le programme processing il y avait déjà de quoi lire et écrire le fichier matériel

pourquoi ne pas avoir tout centralisé ?


void sauve_table_Materiel() {
    Materiel.clearRows();   
    TableRow newRow;   
    int compte_vehicules = -1;
    for (Vehicule veh0 : tous_vehicules_complet) {
        newRow = Materiel.addRow();
        compte_vehicules++;
        Materiel.setString(compte_vehicules, "nom",        veh0.nom);
        Materiel.setString(compte_vehicules, "image",      veh0.image_t);
        Materiel.setString(compte_vehicules, "marque",     veh0.marque);
        Materiel.setString(compte_vehicules, "ref",        veh0.ref);
        Materiel.setInt(   compte_vehicules, "htamp",      veh0.htamp);
        Materiel.setString(compte_vehicules, "couleur",    "#"+hex(color(veh0.couleur)).substring(2));                              //  hex(color) -> String. String doit démarrer par #. Il faut donc remplacer les deux 1er caractères (FF)
        Materiel.setString(compte_vehicules, "echelle",    veh0.echelle);
        Materiel.setInt(   compte_vehicules, "moteur",     int(veh0.moteur));
        Materiel.setInt(   compte_vehicules, "dcc",        int(veh0.dcc));
        Materiel.setString(compte_vehicules, "date",       veh0.date);
        Materiel.setString(compte_vehicules, "fabricant",  veh0.fabricant);
        Materiel.setString(compte_vehicules, "famille",    veh0.famille);
        Materiel.setString(compte_vehicules, "modele",     veh0.modele);
        for (int i = 1; i < 201; i++) {
            Materiel.setInt(compte_vehicules, "CV"+str(i), veh0.CV[i]);
        }
        for (int i = 0; i < 5; i++) {
            Materiel.setInt(compte_vehicules, "P"+str(i), veh0.p[i]);
        }
        Materiel.setInt(   compte_vehicules, "ident",      veh0.ID);
    }       
    saveTable(Materiel, Repertoire_Communs+"Materiel/Materiel.tsv");
}

9
Bonjour

j'ai chargé libre office
j'ai chargé le jre java
j'ai réussi a démarrer les macros

évidemment ca marche pas il y a des erreurs d’exécution pratiquement partout
indépendamment des erreurs (qui pourraient peut être se régler ) le fichier tsv n'a rien a voir avec ce qu il devrait être ! incompatibilité totale.

je vais regarder plus loin mais ca me semble irréalisable sauf a trouver un expert du tableur libre office .

désolé

cordialement jfs

Edit en plus quand je sauve le fichier original sous libre office il bousille tout ! :o

Utiliser ajouter une machine bloque complétement le programme qu'il faut ensuite tuer dans le gestionnaire de tache .... :-X

je sais maintenant pourquoi j'ai plus installé libre office sur mon nouveau pc.

10
Citer
Par contre, ta nouvelle, à 2 boutons, fonctionne et, mieux, le fichier .tsv ajouté est parfaitement fonctionnel

Bah la nouvelle est la même que l'ancienne sauf que j'ai changé le bouton de lancement pour faire "beau" (ça a toujours fonctionné chez moi)

on peut évidemment chainer les deux et faire la sauvegarde en fait il suffit de coller le code ou de lancer la sauvegarde après insertion mais bon celui qui s'amuse a ajouter des trucs sait a priori ce qu'il fait.

les actions sont bien différentes on peut vouloir l'un et pas l'autre ... enfin je sais pas on peut vouloir insérer plusieurs machine et a la fin seulement sauvegarder

On peut aussi mettre un mode d'emploi sur le panneau !

11
lien supprimé
nécessité d'activer les macros évidemment pour que ca fonctionne.

12
Citer
On ne sait toujours pas si le .tsv généré est bien utilisable ?
Tu peux m'envoyer le fichier Excel avec la macro ? (J'ai la flemme... et du boulot)

AH ben si le tsv je l'utilise enfin autant que je puisse y comprendre qq chose (les lignes ajoutées apparaissent bien dans le programme)


Je vous envoies ça dès que je repasse sur pc

Citer
Mais je tiens à ce que ça ne marche pas si on n'a pas mis de photo.
La photo est un élément indispensable à l'esthétique de l'appli.

Suffit de mettre par défaut une photo avec un gros point d exclamation...

apres je peux facilement obliger de choisir dans l'ajout de ligne ...

13
J'avoue je me suis défoulé  ;)

copie la dernière ligne du fichier demande un nom unique et une image (format png oblige) puis insère la ligne a la fin sans risque de merdouille  ;D


Option Explicit
Dim Ajout As Boolean
Function ValExiste(Wks As String, sCol As String, vSearch As String) As Boolean
  ValExiste = False
  ValExiste = Not IsError(Application.Match(vSearch, Sheets(Wks).Range(sCol & ":" & sCol), 0))
End Function
Sub ajouterligne()
Dim Feuille As Worksheet
Dim derLig As Long
Dim NouveauNom As String
Dim NomImage As String
Dim NRange As String
Dim NomUnique As Boolean
Ajout = False
NomUnique = False

If MsgBox("Voulez vous ajouter une machine ?", vbYesNo, "Demande de confirmation") = vbYes Then
       
        'ajout demandé
       
        Ajout = True
        End If
 If Ajout = True Then
Application.DisplayAlerts = False
   'derniere ligne
    derLig = Sheets("Materiel").Cells(Rows.Count, 1).End(xlUp).Row
    While NomUnique = False
    NomUnique = True
NouveauNom = InputBox("Entrez le nom de la machine !", "Nouvelle machine", "Le nom doit etre unique")
If ValExiste("Materiel", "A", NouveauNom) Then
MsgBox "Le nom existe déja !", vbExclamation
NomUnique = False
End If
 Wend
 'Affiche la boîte de dialogue "Ouvrir"
 ChDir ThisWorkbook.Path & "\"
  Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = False
    NomImage = Application.GetOpenFilename("Images (*.png),*.png")
     NomImage = Split(NomImage, "\")(UBound(Split(NomImage, "\")))
NRange = derLig & ":" & derLig
Sheets("Materiel").Rows(NRange).Copy
Sheets("Materiel").Range(NRange).Insert Shift:=xlDown
Sheets("Materiel").Range("A" & derLig + 1) = NouveauNom
Sheets("Materiel").Range("B" & derLig + 1) = NomImage
MsgBox "Nouvelle machine ajoutée !"
Application.DisplayAlerts = True
End If
End Sub

Oui je sais mais bon ca fait travailler mon cerveau ...  ::)

évidemment les deux macros ne sauvent pas par défaut le fichier original (dés fois que) mais ça a été testé ... j'ai essayé de choisir un décodeur mais j'ai pas trop compris comment marche la base jmri

EDIT si on choisi pas d'image ca plante le programme processing (il aime pas l'absence ou la non existence d'une image) peut être du a un manque au niveau de la protection de ce cas dans le code

14
comme cela me gavait un peu

Option Explicit
Dim sauvegarde As Boolean 'variable sauvegarde fichier

Private Sub CommandButton1_Click()
Dim Feuille As Worksheet

sauvegarde = False
If MsgBox("Voulez vous sauvegarder le fichier tsv ?", vbYesNo, "Demande de confirmation") = vbYes Then
       
        'sauvegarde demandée
        sauvegarde = True
        End If
 If sauvegarde = True Then
Application.DisplayAlerts = False
For Each Feuille In ActiveWorkbook.Sheets

If Feuille.Name = "Materiel" Then

Feuille.Copy

With ActiveWorkbook
.Title = Feuille.Name
.Subject = Feuille.Name
 .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".tsv", _
        FileFormat:=xlText, CreateBackup:=False
 .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
         .Close
End With
End If
Next
MsgBox "Nouveau fichier créé et sauvegardé !"
Application.DisplayAlerts = True
End If
End Sub

une tite macro excel qui fait le taf enregistre une copie tsv et une en xls (donc sans la macro)

pour ma part j'ai rajouté au fichier excel un onglet gestion avec un gros bouton enregistrer qui appelle la macro

15
Ah oui évidemment ! pourquoi j'y ai pas pensé ....  ;D

Pages: [1] 2