Hola amigos,
Deje de lado por un rato el botón de imprimir que no me dio resultados, pero ahora me enfrento a un problema que no había previsto desde el inicio.
Sucede que para enviar datos por puerto serial, si el byte a enviar era mayor que 127, simplemente no llegaba nada, pero ya fue solucionado como se mostro en un post anterior por parte de Suky:
array<unsigned char>^ k= gcnew array<unsigned char>(1);
if(textBox1->Text->CompareTo("")!=0){
k[0]=Convert::ToByte(textBox1->Text);
serialPort1->Write(k,0,1);
}
Pero no había dado con que pasa lo mismo cuando llegan datos por puerto serial...

En el evento por llegada de datos por puerto serial, tengo esto:
private:System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e) {
String^ DataSerialPort;
DataSerialPort=serialPort1->ReadExisting();
SetText(DataSerialPort);
}
y la función SetText es esta:
private: void SetText(String^ text){
if (this->Consola->InvokeRequired){
SetTextCallback^ d = gcnew SetTextCallback(this,&HIDBootLoader::Form1::SetText);
this->Invoke(d,gcnew String(text));
}
else{
Textbox1->AppendText(text->Substring(i,1)); // Imprime dato que llego por puerto serial
}
}
Entonces, cuando el dato que llega por serial es mayor a 127, siempre imprime el caracter "?"...
Tienen idea de como solucionar este problema?