Hola man, disculpa q te moleste por aqui, pero ya no se donde postear

, mira yo estoy siguiendo tu manual de c# el q hiciste para el pic, de antemano muchisimas gracias por el manual, me ha servido mucho y me ha dado idea de como sacar datos con c#, lo que yo quiero hacer es mandar una cadena de bytes para un controlador foxboro (es una estacion de trabajo muy flexible), pero bueno lo importante es mandar las cadenas, luego recibirlas y decodificarlas por asi decir, la primera parte creo q ya la tengo hecha gracias a tu manual esto es lo que puse
private void button1_Click(object sender, EventArgs e)
{
{ int count = 7; //esto creo q esta de mas pero no estoy seguro
byte[] mBuffer = new byte[8];
mBuffer[0] = 0x10; // DLE
mBuffer[1] = 0x02; //STX
mBuffer[2] = 0x01; //cont addr
mBuffer[3] = 0x0B; //Poll command
mBuffer[4] = 0x10; //DLE
mBuffer[5] = 0x03; //ETX
mBuffer[6] = 0B; //crc alto
mBuffer[7] = 0xA9; //crc bajo
serialPort1.Write(mBuffer, 0, mBuffer.Length); }
}
claro despues de usar el if que pusiste para abrir el puerto, de nuevo gracias,
ahora lo q se supone mi programa debe de hacer es leer inmediatamente despues de mandar eso para recibir datos, el problema es q al igual q lo q mande me va a enviar una cadena de bytes, lo cual no se como estar muestreando y guardando cada byte, me estoy guiando mas o menos por tu manual para al menos recibirlo como string, y poder mostrar algo q me muestre en el textbox tal como lo haces tu con el pic, eso ya esta hecho gracias a ti basicamente, pero pues no lo he probado para ver q sale, ahora estaba buscando una pagina q una vez vi aqui q te ayudaba a pasar codigos de vb a c#, porq tengo algo q te hace lo que quiero, q de ahi tambien me estoy basando un poco, te lo posteo a continuacion
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Timer1_Timer()
Dim Count As Integer
Dim s As Integer
Dim t As Long
Dim x As Double
Dim y As Double
Dim a As Integer
Dim b As Long
Dim c As Double
Dim d As Double
Dim e As Integer
Dim f As Long
Dim g As Double
Dim h As Double
Dim largo1 As Integer
Dim bin3 As String
Dim bin4 As String
Dim cadena1 As String
Dim largo2 As Integer
Dim bin6 As String
Dim bin5 As String
Dim cadena2 As String
Dim largo As Integer
Dim bin As String
Dim bin2 As String
Dim cadena As String
Dim poll_cmd(0 To 7) As Byte
Dim poll_resp(0 To 23) As Byte
Const DLE = &H10, STX = &H2, ETX = &H3
Const addr = &H1, poll = &HB
poll_cmd(0) = DLE
poll_cmd(1) = STX
poll_cmd(2) = addr
poll_cmd(3) = poll
poll_cmd(4) = DLE
poll_cmd(5) = ETX
poll_cmd(6) = &HDB
poll_cmd(7) = &HA9
envio = poll_cmd()
MSComm1.Output = envio
/////////////////segun yo la parte que esta aqui arriba es lo q llevo hecho, ahora para loo siguiente es lo q tengo q hacer
MSComm1.InputLen = 24
If MSComm1.InBufferCount Then
recibe = MSComm1.Input
For Count = 0 To (LenB(recibe) - 1)
poll_resp(Count) = CByte(recibe(Count))
List1.AddItem poll_resp(Count)
Next Count
End If
////////////////// lo siguiente es pura decifracion segun yo..., hace una parte de un ciclo crc..., no se si estes familiarizado
' Para set point
'asignar la respuesta
x = (poll_resp(13))
y = (poll_resp(14))
'conversion a binario
largo = 7
For K = largo To 0 Step -1
If x And (2 ^ K) Then
bin = bin + "1"
Else
bin = bin + "0"
End If
If y And (2 ^ K) Then
bin2 = bin2 + "1"
Else
bin2 = bin2 + "0"
End If
Next
'concatenacion
cadena = (bin & bin2)
'binario a decimal
For s = 1 To 16
t = t + (Mid(cadena, Len(cadena) - s + 1, 1) * (2 ^ (s - 1)))
Next s
'resultado
Text1.Text = t / 20
Text2.Text = t
' Para control de variable
'conversion a binario
c = (poll_resp(15))
d = (poll_resp(16))
largo2 = 7
For M = largo2 To 0 Step -1
If c And (2 ^ M) Then
bin6 = bin6 + "1"
Else
bin6 = bin6 + "0"
End If
If d And (2 ^ M) Then
bin5 = bin5 + "1"
Else
bin5 = bin5 + "0"
End If
Next
'concatenacion
cadena2 = (bin6 & bin5)
'binario a decimal
For a = 1 To 16
b = b + (Mid(cadena2, Len(cadena2) - a + 1, 1) * (2 ^ (a - 1)))
Next a
'resultado
Text3.Text = b / 20
Text4.Text = b
'asignar la respuesta
' Para valor de salida
'conversion a binario
g = (poll_resp(17))
h = (poll_resp(18))
largo1 = 7
For R = largo1 To 0 Step -1
If g And (2 ^ R) Then
bin3 = bin3 + "1"
Else
bin3 = bin3 + "0"
End If
If h And (2 ^ R) Then
bin4 = bin4 + "1"
Else
bin4 = bin4 + "0"
End If
Next
'concatenacion
cadena1 = (bin3 & bin4)
'binario a decimal
For e = 1 To 16
f = f + (Mid(cadena1, Len(cadena1) - e + 1, 1) * (2 ^ (e - 1)))
Next e
'resultado
Text5.Text = f / 39.985
Text6.Text = f
End Sub
Private Sub Form_Load()
Dim K As Integer
Dim poll_cmd(0 To 7) As Byte
Const DLE = &H10, STX = &H2, ETX = &H3
Const addr = &H1, poll = &HB
poll_cmd(0) = DLE
poll_cmd(1) = STX
poll_cmd(2) = addr
poll_cmd(3) = poll
poll_cmd(4) = DLE
poll_cmd(5) = ETX
poll_cmd(6) = &HDB
poll_cmd(7) = &HA9
For K = 0 To 7
List2.AddItem Hex$(poll_cmd(K))
Next K
MSComm1.PortOpen = True
Timer1.Enabled = False
End Sub
Private Sub Form_unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
bueno no se como seguir con esto, ahora mismo voy a buscar como postear esto tambien, disculpa q te agobie, y de nuevo gracias por tu manual, sin el estaria aun mas perdido xS.