Hey tout ce que je suis en train de tourner un recepteur A/V sur et en dehors de cette la commande RS232 suivante:C# et Comm Ports
@MAIN:VOL=Down & Chr$(13) & Chr$(10)
Cela fonctionne très bien dans mon application VB6:
MSCommAV.CommPort = 4
MSCommAV.RThreshold = 1
MSCommAV.Settings = "9600,N,8,1"
MSCommAV.RTSEnable = True
MSCommAV.PortOpen = True
MSCommAV.Output = "@MAIN:VOL=Down" & Chr$(13) & Chr$(10)
Cependant, je ne peux pas sembler le faire fonctionner dans mon C# app:
PCComm.CommunicationManager commAV = new PCComm.CommunicationManager();
commAV.Parity = "None";
commAV.StopBits = "One";
commAV.DataBits = "8";
commAV.BaudRate = "9600";
commAV.PortName = "COM4";
commAV.CurrentTransmissionType = PCComm.CommunicationManager.TransmissionType.Text; //.Hex
commAV.OpenPort();
commAV.WriteData("@MAIN:VOL=Down" + "\r" + "\n"); //Vol DOWN
Je pense que la raison pour laquelle sa ne fonctionne pas est le « \ r » et « \ n » remplaçant le VB6 Chr $ (13) & Chr $ (10).
CommunicationManager.cs: http://snipt.org/xmklh
Qu'est-ce que 'PCComm.CommunicationManager'? – vcsjones
Je ne sais rien sur l'utilisation de ports série en C#, mais vous n'avez pas besoin de concaténation de chaînes pour mettre un CRLF à la fin d'une chaîne. Il suffit d'écrire '" @MAIN: VOL = Down \ r \ n "'. – Wyzard
@vcsjones: ajout du code CommunicationManager. – StealthRT