我找到了这个页面,其中有一个从Insight-Explorer中提取单元格信息的示例,但是......如何从c#应用程序写入单元格?
答案 0 :(得分:1)
如果要使用C#控制In-Sight摄像机的当前作业文件中的单元格,这是对我有用的方法。请注意,我正在使用In-Sight Explorer v5.9.0,但我也在较早的版本上进行了测试,并且仍然可以使用。
注意:如果没有康耐视In-Sight SDK许可证,您将无法在Visual Studio中运行此应用程序。您将必须构建项目,然后直接运行可执行文件。
using System;
using Cognex.InSight;
namespace ChangeInSightCellValue2
{
class Program
{
static void Main(string[] args)
{
string username = "admin";
string password = "";
string ipAddress = "127.0.0.1";
// Create camera object and connect to it
CvsInSight camera = LogIntoCamera(ipAddress, username, password, true, false);
// Define which cell you want to modify
CvsCellLocation cell = new CvsCellLocation(2, 'C');
// Modify the cell expression
camera.SetExpression(cell, "Filter($A$0,0,0,0,80,100,320,440,0,0,3,3,1,128,128,128,1,1,0)", true);
}
// Log into camera
private static CvsInSight LogIntoCamera(string sCamIP, string sCamUsername, string sCamPassword, bool forceConnect, bool connectAsynchronous)
{
// Create camera object
CvsInSight insight = new CvsInSight();
Console.WriteLine("Object created");
IAsyncResult result;
// Try logging into the camera on a different thread to prevent locking this one up
Action action = () =>
{
// Connect to camera
insight.Connect(sCamIP, sCamUsername, sCamPassword, forceConnect, connectAsynchronous);
};
result = action.BeginInvoke(null, null);
if (result.AsyncWaitHandle.WaitOne(5000))
return insight;
else
return insight;
}
}
}
注意:如果在运行此应用程序时使用In-Sight Explorer连接到相机,则In-Sight Explorer将与相机断开连接,然后在应用程序运行后尝试重新连接与相机断开连接。
答案 1 :(得分:0)
您可以使用纯模式命令在In-Sight Explorer中设置电子表格中的控件值(如您链接到的问题中所述)。请注意,您将无法将数据写入任何单元格 - 您只能写入包含EditInt()
,EditFloat()
,EditString()
,CheckBox()
等的单元格功能。通过套接字连接将命令作为文本发送到摄像机端口23.建立连接后,您需要向摄像机发送用户名和密码。
答案 2 :(得分:0)
如果您使用的是Cognex SDK,请使用以下功能
CvsInSight.SetFloat(...)
设置EditFloat控件值CvsInSight.SetInteger(...)
设置EditInt控件值CvsInSight.SetListBoxIndex(...)
选择列表框中的项目CvsInSight.SetString(...)
设置EditString控件值CvsInSight.SetCheckBox(...)
更改CheckBox控件的状态