小编And*_*yUK的帖子

当报告的软件问题不是真正的软件问题

如果这已经被覆盖了,或者您认为它确实属于wiki,请道歉.

我是一家为生物科学行业生产微阵列印刷机的公司的软件开发人员.我主要通过C++中的GUI开发与各种硬件(气动,液压,步进电机,传感器等)连接,以便将样品吸移并打印到微阵列载玻片上.

在加入公司时,我注意到只要出现与硬件相关的问题,这就会导致整个设置冻结,没有人知道具体问题是什么 - 硬件/软件/误用等等.从那时起我就改进了有些事情通过引入软件超时和异常处理来更好地识别和处理任何硬件相关的问题,例如PLC命令未成功完成,不适当的FPGA响应命令,以及各种其他死锁类型条件等.此外,软件现在将记录具体问题的摘要,通知用户并正常退出线程.此软件未嵌入,只使用串行端口连接.

尽管已经取得了成就,非软件人员仍然不完全了解在这些情况下,他们向我报告的"软件"问题实际上不是软件问题,而是软件报告问题,但不会导致它.不要误会我的意思,没有什么比享受像大量积木一样的软件错误,以及以任何方式提高稳健性的方法.我现在知道这个系统已经足够了,我对这些东西几乎有第六感.

无论我试图解释多少次,都没有真正渗透.他们仍然报告软件问题本质上是硬件问题(最终得到修复).

我想听听其他任何经历过类似指点经验的人以及他们用来处理这些经验的方法.

更新 这里有一些很好的回应,几乎是从同一张赞美诗中唱出来的:更具描述性.我想在硬件出现故障时识别命令并彻底轰炸是第一阶段,但仍然不够.下一阶段将把那些对外行人毫无意义的PLC命令映射到更具启发性的东西."PLC命令M71超时"变为"未能初始化注射器系统.检查是否达到足够的真空"等等......

error-reporting

7
推荐指数
1
解决办法
238
查看次数

维护最近的文件列表

我想在我的MFC应用程序上维护一个简单的最近文件列表,其中显示了最近使用的4个文件名.

我一直在玩Eugene Kain的"The MFC Answer Book"中的一个例子,该例子可以编程方式将字符串添加到基于标准Document/View架构的应用程序的Recent Files列表中:(参见"管理最近的文件列表(M​​RU)") ):

http://www.nerdbooks.com/isbn/0201185377

我的应用程序是一个相当轻量级的实用程序,它不使用Document/View体系结构来管理数据,文件格式等.我不确定上面例子中使用的相同原则是否适用于此.

有没有人有任何关于如何维护文件菜单中显示的最近文件列表的例子,并且可以存储在某个文件/注册表设置中?最重要的是,我缺乏知识和理解阻碍了我.

更新:我最近发现这个CodeProject文章非常有用......

http://www.codeproject.com/KB/dialog/rfldlg.aspx

c++ mfc recent-file-list

6
推荐指数
2
解决办法
5164
查看次数

提升图库:设置边权重值

我正在调查使用boost图库,以便将它们应用到我想到的各种网络问题中.

在示例中,我一直在查看图形边缘值("权重")总是初始化为整数,例如在这些Bellman-FordKruskal算法中,例如:

int weights[] = { 1, 1, 2, 7, 3, 1, 1, 1 };
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我尝试将权重更改为加倍,我会得到一堆关于转换等的警告消息,到目前为止,我还无法弄清楚如何克服.

有没有人看到这个方法?

c++ boost-graph

5
推荐指数
1
解决办法
3602
查看次数

在哪里存储桌面应用程序的用户数据?

我正在开发 C#.NET 桌面应用程序,我希望用户能够创建新的数据库文件。我是桌面应用程序的新手,我真的不知道存储这些文件的最佳位置在哪里。我想将它们存储在我的应用程序文件夹中,但我读到这不是最好的解决方案。我应该将它们存储在 C:// 中还是有其他一些最佳实践?

.net c# desktop-application file-management

5
推荐指数
1
解决办法
3753
查看次数

如何在java中使用selenium webdriver时查找输入字段是否为只读

我正在使用带有 java 的 selenium webdriver 来编写脚本。但是,我们有几个字段在单击按钮后被禁用。我们需要找到这个字段是否处于只读模式。我用过isEnabledisDisplayed但不工作,系统显示NoSuchElementFound预期。有没有办法处理这个?

javascript java selenium-webdriver

4
推荐指数
1
解决办法
2万
查看次数

简化FOR循环

我有一个基本上从双向量中读取值的函数,将它们附加到一个字符串(同时确保每个字符串之间的空间并设置它们的精度)并返回最终结果,减去最后的空格:

std::string MultiplePrintProperties::GetHpitchString()  
{    
    std::string str;  
    vector< double >::iterator it;    

    for ( it  = Vals.begin();    
          it != Vals.end();  
          it++ )  
    {
        ostringstream s;    

        // Set precision to 3 digits after the decimal point
        // and read into the string 
        boost::format fmt( "%.3f " ); 
        s << fmt % *( it );
        str.append( s.str() );      
    }

    // Remove last white space and return string   
    return str.substr( 0, str.length() - 1 ); 
}
Run Code Online (Sandbox Code Playgroud)

我想知道这段代码是否可以以任何方式简化.我最近一直在调查for_each和functor的使用,但是我们无法弄清楚这些技术如何改进这个特定的例子.

c++ functor simplify

2
推荐指数
1
解决办法
933
查看次数

有效删除c#中的重复xml元素

我有几个包含大量重复条目的XML文件,例如这些.

<annotations>
  <annotation value=",Clear,Outdoors" eventID="2">
    <image location="Location 1" />
    <image location="Location 2" />
    <image location="Location 2" />
  </annotation>

  <annotation value=",Not a problem,Gravel,Shopping" eventID="2">
    <image location="Location 3" />
    <image location="Location 4" />
    <image location="Location 5" />
    <image location="Location 5" />
    <image location="Location 5" />
  </annotation>
</annotations>
Run Code Online (Sandbox Code Playgroud)

我想删除每个子节点中的重复元素.我接近这个的方法是将所有元素复制到列表然后比较它们,

 foreach (var el in xdoc.Descendants("annotation").ToList())
   {
      foreach (var x in el.Elements("image").Attributes("location").ToList())
       {
           //add elements to a list
       }
   }
Run Code Online (Sandbox Code Playgroud)

一半我意识到这是非常低效和耗时的.我对XML很新,我想知道C#中是否有任何内置方法可以用来删除重复项?

我试过用

if(!x.value.Distinct()) // can't convert collections to bool
    x.Remove();
Run Code Online (Sandbox Code Playgroud)

但这不起作用,也不起作用

if(x.value.count() > 1) // …
Run Code Online (Sandbox Code Playgroud)

c# xml

1
推荐指数
1
解决办法
4677
查看次数