DGPosPay.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.IO.Ports;
  8. using DGPosPay.Window;
  9. using System.Timers;
  10. using System.Windows.Forms;
  11. using Ini;
  12. namespace DGPosPay
  13. {
  14. public class DGPosPayClass
  15. {
  16. IniFile ini = new IniFile();
  17. private SerialPort serialPort = new SerialPort();
  18. public string DGPosPay(string inParams)
  19. {
  20. //System.Diagnostics.Debugger.Launch();
  21. string errorCode = "-1";
  22. string errorMessage = "";
  23. string readData = "";
  24. JObject jObject = new JObject();
  25. try
  26. {
  27. JObject inParamsobj = JObject.Parse(inParams);
  28. var paramsobj = inParamsobj["result"][0];
  29. string posData = paramsobj["posData"].ToString();
  30. string remarks= paramsobj["remarks"].ToString();
  31. string portName = ini.IniReadValue("Config", "portName");
  32. using (serialPort)
  33. {
  34. serialPort.PortName = portName; // 设置串口名称
  35. serialPort.Encoding = System.Text.Encoding.GetEncoding("GB2312");
  36. serialPort.BaudRate = 9600; // 设置波特率
  37. serialPort.Parity = Parity.None; // 设置奇偶校验
  38. serialPort.DataBits = 8; // 设置数据位数
  39. serialPort.StopBits = StopBits.One; // 设置停止位
  40. serialPort.Handshake = Handshake.None; // 设置握手协议
  41. //serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); // 接收到数据时的事件
  42. if (!serialPort.IsOpen)
  43. {
  44. serialPort.Open();
  45. }
  46. if (serialPort.IsOpen)
  47. {
  48. WaitWindow waitWindow = new WaitWindow(serialPort);
  49. waitWindow.label3data = remarks;
  50. serialPort.WriteLine(posData); // 写入数据
  51. if (waitWindow.ShowDialog() == DialogResult.OK)
  52. {
  53. }
  54. else
  55. {
  56. }
  57. string outstring = waitWindow.outstring;
  58. return outstring;
  59. }
  60. else
  61. {
  62. errorCode = "-1";
  63. errorMessage = "串口打开失败";
  64. }
  65. }
  66. }
  67. catch (Exception ex2)
  68. {
  69. errorCode = "-1";
  70. errorMessage = ex2.Message;
  71. }
  72. if (serialPort.IsOpen)
  73. {
  74. serialPort.Close();
  75. }
  76. jObject.Add("errorCode", errorCode);
  77. jObject.Add("errorMessage", errorMessage);
  78. jObject.Add("posData", readData);
  79. return jObject.ToString();
  80. }
  81. private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
  82. {
  83. SerialPort sp = (SerialPort)sender;
  84. string indata = sp.ReadExisting();
  85. Console.WriteLine("Data Received:");
  86. Console.Write(indata);
  87. }
  88. }
  89. }