Мы написали программу, которая отправляет простые данные из LPT1 в RS232C. В основном, кабель LPT в Serial используется для соединения двух машин. У программы нет проблем с записью данных в параллельный порт, но на последовательном конце ничего не получено.
Мне интересно, возможно ли такое общение на фундаментальном уровне, или я неправильно написал свою программу.
DataSender (запись в LPT1)
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE m_hCommPort = ::CreateFile( "LPT1",
GENERIC_READ|GENERIC_WRITE, // access ( read and write)
0, // (share) 0:cannot share the
// COM port
0, // security (None)
OPEN_EXISTING, // creation : open_existing
FILE_FLAG_OVERLAPPED, // we want overlapped operation
0 // no templates file for
// COM port...
);if(m_hCommPort) {
printf("OK\n");
}
char data[] = "123481278349789\r\n";
DWORD dwSize = strlen(data);
DWORD dwBytesWritten;
DWORD dwBytesRead;
while(true) {
if(WriteFile (m_hCommPort,data,dwSize,&dwBytesWritten ,0)) {
printf("sended: %d\n", dwBytesWritten);
} else {
printf("send fail: %d\n", dwBytesWritten);
}
printf("send done\n");
int i;
scanf("%d", &i);
}
return 0;
}
DataReceiver (получение от COM3)
class Program
{
static void Main(string[] args)
{
SerialPort sendingPort = new SerialPort("COM3", 9600);
try
{
sendingPort.Open();
char c = (char)sendingPort.ReadChar();
Console.WriteLine("Readed:" + c);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}Console.ReadKey();
}
}
Задача ещё не решена.