데이터를 보내고 받기 위해 COM4 시리얼 포트를 사용하고 있습니다. 내가 들어오는 요청 요청이 있습니다 - 요청이 mydatastring = myrequeststring임을 확인합니다 -이 작동합니다. 이 이벤트 처리기에서 com 포트를 통해 데이터를 회신하려하지만 물론 액세스가 거부되었습니다. 요청을받은 후 데이터를 보내려면 어떻게해야합니까?시리얼 포트 수신 중 데이터 전송 이벤트
void scScale_OnReceiving(object sender, DataStreamEventArgs e)
{
if(e.Response == myrequeststring)
{
scScale.Transmit(this.data);
}
}
편집 scScale의
관련 부분 - 그것이하여 SerialPort 클라이언트 클래스는 - 기본적으로하여 SerialPort 세부 사항을 캡슐화합니다.
관련 코드 :
public bool OpenConn()
{
try
{
if (_serialPort == null)
_serialPort = new SerialPort(_port, _baudRate, Parity.None);
if (!_serialPort.IsOpen)
{
_serialPort.ReadTimeout = -1;
_serialPort.WriteTimeout = -1;
_serialPort.Open();
if (_serialPort.IsOpen)
{
serThread.Start(); /*Start The Communication Thread*/
IsOpen = true;
}
else
{
IsOpen = false;
}
}
}
catch (Exception ex)
{
return false;
}
return true;
}
public void Transmit(string packet)
{
_serialPort.Write(packet); // 0, packet.Length);
}
public void Transmit(byte[] packet)
{
_serialPort.Write(packet, 0, packet.Length);
}
public int Receive(byte[] bytes, int offset, int count)
{
int readBytes = 0;
if (count > 0)
{
readBytes = _serialPort.Read(bytes, offset, count);
}
return readBytes;
}
private void OnSerialReceiving(byte[] res)
{
if (OnReceiving != null)
{
OnReceiving(this, new DataStreamEventArgs(res));
}
}
SCSCALE 링크에서이 코드입니다 .. https://roofman.wordpress.com/2012/09/13/fast-serial-communication-for-c-real-time-applications/
보낸 사람이 직렬 포트입니까? 그렇다면 캐스팅하지 않고 대신 사용하십시오. – Peter4499
scScale이란 무엇입니까? 표준 Windows 직렬 포트에는 전송 방법이 없습니다. – dbasnett
@dbasnett - 관련 코드를 추가했습니다. 기본적으로 직렬 포트를 캡슐화했습니다. – Ken