2017-05-03 1 views
0

J'utilise CAPL pour simuler un environnement de test pour certains petits tests et j'ai des problèmes pour envoyer des messages ou des paramètres plus spécifiques pour configurer les valeurs.Envoi d'un message avec des valeurs de signal CAPL et dbc

Je suis capable de lire les valeurs de signal avec $ SignalName, aussi je suis capable de définir des valeurs de signal comme ça.

Si je suis en utilisant ce code pour envoyer un message les données de message est toujours 0:

on key 't' 
{ 
    message MessageName msg; 
    setSignal(SignalName,i); 
    write("Value: %d",i); 
    outport(msg); 
} 

sorcière fait Sence un peu becouse je pense que les objets de message sont destinés à être utilisés pour envoyer des octets witch vous pouvez accéder à par msg.byte()

Je sais que je peux placer des signaux dans les messages par msg.SignalName, mais encore ceci ne semble pas la bonne manière. Je pense qu'il devrait y avoir un moyen d'envoyer un message et tous les signaux contenus dans le message sont mis aux valeurs définies par la fonction SetSignal(). Sinon, la fonction SetSignal est un peu inutile

Peut-être que quelqu'un a une idée. Merci

Répondre

0

J'utilise CANalyzer version 8.2 et je n'ai pas l'option d'utiliser la fonction SetSignal (signal, valeur). Régler les valeurs du signal en accédant aux sélecteurs de message semble être une approche raisonnable. Cependant vous avez utilisé la fonction outport! Vous devez utiliser la fonction de sortie pour transmettre des messages. Pour cette méthode, la base de données doit être configurée de sorte que le message msg contienne tous les signaux nécessaires (signal1).

Si vous souhaitez régler les valeurs de début configurées dans la base de données toutes les valeurs de signal utiliser la fonction:

setSignalStartValues(message msg);