Problemas con leer el la información que le manda arduino a c#

Buenos dias.

Resulta que estoy haciendo un programa en c# y arduino el cual; c# lee un .txt que contiene unos numeros separados por coma asi: (6,2,1,3,3,2), la idea es que esos numeros sean una señal la cual yo le tengo que pasar a arduio para que el me la trasnfome, por ejemplo escalarlo,hacerle corrimiento, sumbuestreo o reflexion, entonces c# lo organiza de tal manera que quede asi ("cantidad de datos","transformacion","unidades a transfromar","la señal separada por comas") para mandarselo a arduino.

por ejemplo para la señal anterior, c# le manda a arduino lo siguiente: "6,escalar,2,6,2,1,3,3,2".

el problema es que no se si arduino si este recibiendo la informacion o no, porque cuando le pido a arduino que me devulva la señal transformada simplemente no me la devulve y hace como si no hubiera nada.

adjunto el codigo.

CODIGO EN ARDUINO:

int senal[200];
int senaltrans[200];

int cont=0;

void setup() {
Serial.begin(9600);
}

void loop() {

}

void serialEvent() {
String t= Serial.readStringUntil(',');
String opcion= Serial.readStringUntil(',');
String unidades= Serial.readStringUntil(',');

for(int i=0;i<t.toInt();i++){
senal*=Serial.readStringUntil(',').toInt(); *

  • }*
  • //*
  • if(opcion.equals("Reflexion") == true){*
  • for(int i=t.toInt()-1;i>=0;i--){*
  • if(i<t.toInt()-1){senaltrans[cont]=senal[i+1];}*
  • else{senaltrans[cont]=senal[cont];}*
  • cont++; *
  • } *
  • for(int i=0;i<t.toInt();i++){*
    _ Serial.print(senaltrans*);_
    _
    if(i+1 < t.toInt()){_
    _
    Serial.print(",");_
    _
    } _
    _
    } _
    _
    }_
    _
    // _
    _
    else if(opcion.equals("escalar") == true){_
    _
    for(int i=0;i<t.toInt();i++){_
    senaltrans=senal_unidades.toInt();
    }

    * for(int i=0;i<t.toInt();i++){
    Serial.print(senaltrans);
    if(i+1 < t.toInt()){
    Serial.print(",");
    }
    }
    }
    //
    else if(opcion.equals("submuestreo") == true){
    for(int i=0;i<t.toInt();i++){
    senaltrans=senal[i*unidades.toInt()];
    }
    for(int i=0;i<t.toInt();i++){
    Serial.print(senaltrans);
    if(i+1 < t.toInt()){
    Serial.print(",");
    }
    }
    }
    //
    else if(opcion.equals("corrimiento") == true){
    for(int i=0;i<t.toInt();i++){
    cont=i+unidades.toInt();
    if(cont<0){cont=27+cont;}
    senaltrans=senal[cont];
    }
    for(int i=0;i<t.toInt();i++){
    Serial.print(senaltrans);
    if(i+1 < t.toInt()){
    Serial.print(",");
    }
    }
    }
    }
    CODIGO EN C#
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO.Ports;
    using Microsoft.VisualBasic;
    namespace Segundo_Punto_Señales
    {_

    public partial class Window_Form : Form*

    * {*
    * string señal;*
    * string señaltrans;*
    * string señalaux;*
    * string aux;*
    * string Unidades;*
    * String s;*
    * int i = 0;*
    * int[] señales = new int[200];*
    * int[] señales_transformada = new int[200];
    _ SerialPort Arduino = new SerialPort("COM3");_
    public Window_Form()
    _ {
    InitializeComponent();
    }_

    private void Window_Form_Load(object sender, EventArgs e)
    _ {
    Arduino.BaudRate = 9600;
    Arduino.Parity = Parity.None;
    if (!Arduino.IsOpen)
    {
    Arduino.Open();
    }
    int startIndex;
    TextReader archivo;
    archivo = new StreamReader("señal.txt");
    señal = archivo.ReadToEnd();
    señalaux = señal;
    Char Range = ',';
    while (señal != null) {
    startIndex = señal.IndexOf(Range);
    if (startIndex >= 0) {
    aux = señal.Substring(0, startIndex);
    señal = señal.Remove(0, startIndex + 1);
    señales = Convert.ToInt32(aux);
    }
    else*

    * {
    señales = Convert.ToInt32(señal);
    señal = null;
    }
    i++;
    }
    }_

    private void Escalamiento_Click(object sender, EventArgs e)
    _ {
    if (!Arduino.IsOpen)
    {
    Arduino.Open();
    }
    Unidades = Interaction.InputBox("¿CUANTAS UNIDADES QUIERE ESCALAR?", "ESCALAMIENTO", "Unidades:", -1, -1);
    Arduino.WriteLine(Convert.ToString(i) + "," + "escalar" + "," + Unidades + "," + señalaux);
    Arduino.DataReceived += new SerialDataReceivedEventHandler(serialDataReceivedEventHandler);*_

* }*
* private void serialDataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e)*
* {*
* // Obtenemos el puerto serie que lanza el evento*
* SerialPort currentSerialPort = sender as SerialPort;*
* Arduino.WriteLine(Convert.ToString(i) + "," + "escalar" + "," + Unidades + "," + señalaux);*
* // Leemos el dato recibido del puerto serie*
* señaltrans = currentSerialPort.ReadLine();*
* //SEÑALTRANS DEBERIA RECIBIR LA SEÑAL TRANSFORMADA QUE LE MANDA ARDUINO*

* }*
* }*
}

Te envié privado para que edites tu post incial de acuerdo a las normas.

En la sección documentación encontrar un hilo perteneciente a Metaconta donde hay un enfoque de varios lenguajes C# incluido y Arduino.
Te recomiendo que lo busques y leas.

Ve a Documentación => Indice de temas tutoriales => Serial.