如何将Turbo Pascal for Win32的I / O端口访问转换为C#.Net
发布时间:2020-12-13 22:40:12 所属栏目:Windows 来源:网络整理
导读:我有一台硬币计数器机(SC350 / 360),通过RS232C接口连接到计算机.我有描述通信协议的技术文档,还包括一个工作pascal程序来操作机器.我复制了pascal代码,并在Turbo Pascal上使用DosBox对 Windows 7 64位进行了测试,代码编译成功.我现在想要实现的是将这些pasc
我有一台硬币计数器机(SC350 / 360),通过RS232C接口连接到计算机.我有描述通信协议的技术文档,还包括一个工作pascal程序来操作机器.我复制了pascal代码,并在Turbo Pascal上使用DosBox对
Windows 7 64位进行了测试,代码编译成功.我现在想要实现的是将这些pascal代码转换为C#.Net但是我很难将几行转换为C#,因为我没有太多的串口编程经验.
这是Pascal中用于初始化与机器通信的代码. (将波特率设置为9600,8位,无奇偶校验,1个停止位) uses crt; const { COM1: RS232 port address } RXTX = $3F8; { $2F8 if COM2: is used } ACK = 6; NAK = 21; ESC = 27; var dummy,checkSum : integer; key : char; protocol : integer; var i : integer; begin i := 1843200 div 9600 div 16; port[RXTX + 3] := $80; port[RXTX + 1] := hi(i); port[RXTX]:= lo(i); port[RXTX + 3] := 3; port[RXTX + 4] := $A; while odd(port[RXTX + 5]) do begin dummy := port[RXTX]; delay(10); end; end; { InitComm } 我上面的代码的相应C#出现了; (如果我弄错了,请纠正我) SerialPort port=new SerialPort("COM1",9600,Parity.None,8,StopBits.One); 但我无法理解如何转换其余的pascal程序.我遇到困难的一些程序是; procedure Tx(data : integer); { Transmit a character on serial channel } begin while port[RXTX + 5] and $20 = 0 do; port[RXTX] := data and $FF; end; { Tx } function RxWait : integer; { Waits for a character from serial channel } begin while not odd(port[RXTX + 5]) do; RxWait := port[RXTX]; end; { RxWait } procedure Tx2(data : integer); { Transmit a char on serial channel + Calculate check sum } begin Tx(data); checkSum := (checkSum + data) and $FF; end; { Tx2 } 你能帮助我们如何将这些pascal代码转换为等效的C#吗?我知道我可以使用’port.Write’方法写入端口,但这不能完全适合turbo pascal代码和端口数组.(例如端口[RXTX 3]:= $80;)我不知道是什么端口数组索引’RXTX 3’指的是与C#有关. 如果你能帮助我,我真的很感激,我希望我能学会自己转换其余的pascal代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何在成功时运行多个命令
- wcf – 有关替换Microsoft .NET的Web服务增强功能(WSE)3.0的
- Windows – PowerShell复制项方法失败 – 文件名中的括号
- windows-server-2008-r2 – 如何在没有DC可用的情况下删除E
- windows-server-2012-r2 – WDS 2012 R2服务器
- windows-phone-7.1 – 将免费的Windows手机应用程序更改为付
- winforms – 使用Windows窗体锁定脚本终止后的PowerShell I
- .net – 为WPF MediaPlayer使用DLL资源
- 所有版本的Windows 7都包含.NET Framework 3.5版吗?
- windows-phone-8 – Windows Phone 8.1 – MVVMLight – 为