【问题标题】:The POS Device is not connecting, how can I undestand wether the cable or the code is wrong?POS机没有连接,如何判断是数据线错误还是密码错误?
【发布时间】:2022-01-12 08:01:14
【问题描述】:

我想通过 c# 包连接到 Ingenico iCT250 POS 设备。我正在使用 this one 。我按照他们自述文件中的说明进行操作并尝试连接。当我运行时,几秒钟后程序关闭并收到此消息。

C:\Users\User\Documents\c#\pos\pos\bin\Debug\net6.0\pos.exe (process 22480) exited with code 0.

我不明白为什么我得到这个退出代码。怎么了? 代码错了吗?还是电缆有问题?如何研究解决方案? 还是因为我读到“说进程以退出代码 0 结束意味着一切正常”而连接了?但如果一切正常,posDevice.IsConnected 应该返回truefalse。 我也尝试只在新的 POS 中通过端口。但同样的结果。 代码如下:

class Program
{
    public static void Main(string[] args)
    {  
        POS posDevice = new POS("COM4", 115200);
         posDevice.Connect();
        Console.WriteLine("IsConnected??", posDevice.IsConnected);
    }
}

【问题讨论】:

  • 我建议在 Main 方法的末尾添加一个 Console.ReadLine(),这样程序一旦完成就不会退出, 这样你就可以看到输出了。您还可以编辑您的 WriteLine 调用,以便它实际上可以输出值:Console.WriteLine("IsConnected?? {0}", posDevice.IsConnected);
  • 感谢您的宝贵时间,但这并不能帮助我理解问题。您还有其他建议吗?
  • exited with code 0. 表示:没有出错。所以你的代码工作(没有抛出异常等),写了一个字符串(包含你的布尔值,因为你没有为它添加占位符)然后完成 并关闭它写入的控制台。这就是为什么您看不到它写入控制台的内容。这就是我的建议试图改变的:1)阻止程序立即退出并关闭控制台窗口,2)实际将IsConnected 写入控制台。 另一个建议是:使用调试器,单步调试代码,检查变量。
  • 如果您将评论添加为答案,我可以将其指定为回复!现在我明白了,谢谢你的帮助!

标签: c# .net connection pos


【解决方案1】:

exited with code 0. 表示您的代码没有出错(就异常而言)。

但您的代码存在两个逻辑问题:

1 - 您实际上并没有编写测试结果,因为您的格式中没有包含占位符。

所以尝试将其更改为:
Console.WriteLine("IsConnected?? {0}", posDevice.IsConnected);

2 - 在您的程序完成后,它立即退出 - 关闭控制台窗口,并对您隐藏输出。

所以将以下内容添加到您的 Main 的末尾:
Console.ReadLine();

这样,您的程序会在退出前等待您的用户输入,同时保持控制台窗口打开以便您阅读结果。

总代码:

class Program
{
    public static void Main(string[] args)
    {  
        POS posDevice = new POS("COM4", 115200);
        posDevice.Connect();
        Console.WriteLine("IsConnected?? {0}", posDevice.IsConnected);
        Console.ReadLine();
    }
}

【讨论】:

    【解决方案2】:

    试试这个:

    class Program
    {
        public static void Main(string[] args)
        {  
            POS posDevice = new POS("COM4", 115200);
    
            posDevice.Connect();
    
            if (posDevice.IsConnected)
            {
                Console.WriteLine("Device is connected");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Device is not connected");
                Console.ReadKey();
            }
        }
    }
    

    并检查“POS”类中的其他方法,这可能有助于解决连接问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      相关资源
      最近更新 更多