Problema para traspasar un algoritmo de visual basic a visual c#. (CmuCam3 enviando imágenes jpeg)

Buenas noches, tengo un sensor de imagen conocido como CMUcam3, el cual he estado intentando comunicar con mi PC, si lo hace, el problema esta en mi programa elaborado en visual c# que no me muestra las imágenes que envía mi sensor. Este programa fue tomado de un demo que viene en visual basic para la CMuCam y que si funciona, aquí se los muestro:

//Lo primero es puro bla bla... Creo...

Public Class Form1
Dim WithEvents serialPort As New IO.Ports.SerialPort
Public jpeg_grab As Byte
Public myStr As String


Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


grabButton.Enabled = True

//Esto es parte de un combobox que enlista los puertos disponibles....


For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1
cbbCOMPorts.Items.Add(My.Computer.Ports.SerialPortNames(i))
Next
cbbCOMPorts.SelectedIndex = 0
baudBox.Items.Add( 115200 )
baudBox.Items.Add( 57600 )
baudBox.Items.Add( 38400 )
baudBox.Items.Add( 28800 )
baudBox.Items.Add( 14400 )
baudBox.Items.Add( 9600 )
baudBox.Items.Add( 4800 )
baudBox.Items.Add( 2400 )
baudBox.Items.Add( 1200 )
baudBox.SelectedIndex = 0
btnDisconnect.Enabled = False
jpeg_grab = 0
End Sub


Public Delegate Sub myDelegate()

Private Sub grab_jpeg()

//Aquí abre el puerto serial


If serialPort.IsOpen Then
serialPort.Close()
End If
Try
With serialPort
.PortName = cbbCOMPorts.Text
.BaudRate = Val(baudBox.SelectedItem().ToString())
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.ReadTimeout = Val(serialTOBox.Text())
.Encoding = System.Text.Encoding.Unicode
.Encoding = System.Text.Encoding.Default
End With
serialPort.Open()
serialPort.DiscardInBuffer()
serialPort.DiscardOutBuffer()
lblMessage.Text = cbbCOMPorts.Text & connected.
btnConnect.Enabled = False
btnDisconnect.Enabled = True
grabButton.Enabled = True
btnSend.Enabled = True
stopButton.Enabled = True
configPanel.Enabled = True
ServoPanel.Enabled = True
txtDataToSend.Focus()
Catch ex As Exception
MsgBox( Communication Error )
StreamStop()
End Try

//Esta sección hace la magia...


Dim i As Integer
Dim buf() As Byte
serialPort.DiscardInBuffer()
serialPort.Write( SJ & vbCr)
serialPort.ReadTo( ACK & vbCr)
myStr = serialPort.ReadTo( JPG_END & vbCr & : )
ReDim buf(myStr.Length())
For i = 0 To myStr.Length() - 1
buf(i) = CByte(Asc(myStr(i)))
Next
My.Computer.FileSystem.WriteAllBytes( test.jpg , buf, False)
PictureBox1.ImageLocation = test.jpg


End Sub

Private Sub grabButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles grabButton.Click
grab_jpeg()
End Sub

Bueno admito ser desconocedor de estos lenguajes, primero me tope con que no encontré una instrucción similar al My.Computer, no logre imitar lo que vb hace con el combobox, en fin yo establecí en SerialPort1 la forma de comunicación que deseaba (115200Baudios, No parity, 1 Stop... Pero lo que me interesa realmente es la última esección del código y así la convertí:

private void button1_Click(object sender, EventArgs e)
{
int i = 0;
byte[] buf;
serialPort.DiscardInBuffer();
serialPort.Write( SJ + \r );
serialPort.ReadTo( ACK + \r );
myStr = serialPort.ReadTo( JPG_END + \r + : );
buf = new byte[myStr.Length];
for (i = 0; i <= myStr.Length - 1; i++)
{
buf = Convert.ToByte(Convert.ToInt32(myStr));
}
File.WriteAllBytes( test.jpg , buf);
pictureBox1.ImageLocation = test.jpg ;
pictureBox1.Refresh();
}

Con estas librerías:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Threading;
using System.Runtime.InteropServices;

Pues si alguien pudiese guiarme en que estoy mal se los agradecería mucho. Cuando presionó mi botón pues aparece en el picturebox una imagen de una hoja con una tacha...

Saludos.!

Añade tu respuesta

Haz clic para o