이번 기회에 시리얼 통신을 사용하게 되었다.
압력센서에서 값을 받아오기 위해서
C#이다보니 C#시리얼 통신이랑 똑같이 하면된다. -_ -...난 XNA라고 괜히 겁먹었음 ㅠ
public void Serial_open()
{
try
{
sss.PortName = "COM6";
sss.DataBits = 8;
sss.Parity = Parity.None;
sss.BaudRate = 9600;
sss.StopBits = StopBits.One;
sss.Open();
CreateThread();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "Alter", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
이부분은 시리얼 포트를 열때 사용한다 멀티 쓰레드로 돌리지 않으면 게임이랑 같이 느려진다-_-(당연한걸..)
쓰레드를 만드는 부분 함수
public void CreateThread()
{
Thread thRun = new Thread(new ThreadStart(SerialPort_DataReceived));
thRun.Start();
}
쓰레드를 생성하고 스타드 안에 값을 받는 함수를 돌려준다
public void SerialPort_DataReceived()
{
while(true)
{
try
{
if (Mode == mode.sens)
{
string strtmp = this.sss.ReadLine();
}
}
}
}
센서쪽에서 \n 을 넣어서 보내달라그랬다. 엔터가 들어올때까지 버퍼에 쌓아두다가
값이 넘어오게 된다. 이 넘어온 값을 적절하게 짤라서 게임에 사용하였다.
궁금한점 있으면 댓글 남겨주세요
네트워크도 되긴하지만 이부분은 다음에 작성하겠다.