Question by
aaabbbsss · Jan 20, 2016 at 04:29 PM ·
arduinohangserialport
Unity hangs when I press play (serial port, unity + arduino)
Hi all, I have a script that gets values from a serial port from an Arduino, however when I hit play, unity editor hangs. How do I fix this? Thanks!
(this is my code for unity)
using UnityEngine;
using System.Collections;
using System.IO.Ports;
using System.IO;
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class musicScrip : MonoBehaviour {
private float amount;
private int var1;
private int var2;
private int var3;
SerialPort sp = new SerialPort("COM7", 9600);
void Start ()
{
sp.Open();
sp.ReadTimeout = 100;
}
void Update ()
{
if (sp.IsOpen) //youtube tutorial's method
{
try
{
serialEvent (sp);
}
catch (System.Exception)
{
throw;
}
}
}
void serialEvent(SerialPort myPort)
{
string myString = myPort.ReadLine(); //the ascii value of the "|" character
if(myString != null)
{
myString = myString.Trim(); //remove whitespace around our values
string[] inputs = myString.Substring(2, myString.Length-4).Split(',');
//now assign your values in processing
if(inputs.Length == 3)
{
var1 = Int32.Parse(inputs[0]);
var2 = Int32.Parse(inputs[1]);
var3 = Int32.Parse(inputs[2]);
Debug.Log(var1);
}
}
}
}
Comment
I have tried again by delaying the serial but then I get the "operation has timed out" error.