2012-11-01 41 views
0

我試着按照這個通過,但我努力把它變成C#。轉換舊的代碼幫助。 VB6(我認爲)以C#

Private Function TransmitHex(nChar As Byte, nOption As Boolean) As Boolean 
    Dim sHex As String 
    Dim nHi As Byte 
    Dim nLo As Byte 

    sHex = Right("00" + Hex(nChar), 2) 

    nHi = AscW(Left$(sHex, 1)) 
    nLo = AscW(Right$(sHex, 1)) 

    Comm.Output = ChrW$(nHi) 

    Comm.Output = ChrW$(nLo) 

End Function 

我有2個字節,我認爲是傳遞到這裏。 4和176.我也無法運行代碼。

誰能告訴我等效的C#會是什麼?或者只是解釋nChar在途中會發生什麼。非常感謝!

+0

如果你沒有VB6,你可以將代碼粘貼到一個VBA宏中,然後通過你自己的方式執行它。 –

+0

該代碼將'nChar'轉換爲字節值的2位十六進制表示形式。然後它將這兩位數字發送到'Com'對象(串口?)。 'nOption'參數完全被忽略。使用'AscW'和'ChrW'完全沒有必要。 – MarkJ

回答

1
public bool TransmitHex(byte char, bool opt) 
{ 
    //convert to chat to a hex string and that to an array of chars 
    var hex = char.ToString("X2").ToCharArray(); 
    //open a connection to a serialport 
    var sp = new SerialPort("COM1"); 
    //write the hex vals 
    sp.Write(hex,0,1); 
    sp.Write(hex,1,1); 
    return true; 
} 
+0

非常感謝! – DaveB

+0

不用客氣,如果這回答你的問題,你應該將其標記爲答案。 :) – albertjan