如何用TCP協(xié)議來控制SAMLight
Samlight提供了強大ClientInterface用戶開發(fā)接口,除了ActiveX控件編程方式之外,Samlight還提供了基于以太網(wǎng)的編程接口,由下圖可以看出,運行了Samlight的PC,可以變成一臺服務(wù)器,用另一臺PC可以直接通過以太網(wǎng)協(xié)議來控制PC1上的Samlight。

下面,我們利用VisualStudio 2010 C# 來介紹,如何實現(xiàn)這個功能。
首先,確保Samlight為最新版本,并做如下設(shè)置(如果是連接了一塊USC控制卡,控制卡需要開通ClientInterface功能)

127.0.0.1 表示我們可以從本機來進(jìn)行訪問,當(dāng)然你也可以設(shè)置成別的IP地址,實現(xiàn)局域網(wǎng)甚至廣域網(wǎng)的訪問。端口號可以隨意設(shè)置,只要不是已經(jīng)被占用的即可
VS C#中,我們需要添加
using System.Net.Sockets;
下面是實現(xiàn)通信的一個簡單代碼,可以放在button的Click事件中進(jìn)行測試,
try
{
TcpClient client = new TcpClient("127.0.0.1", 3333);
NetworkStream sendStream = client.GetStream();
string translate = "ScCciTranslateEntity(\"\",5.0,5.0,5.0)\n";
string test = "ScCciTest(\"Hello\")\n";
string getversion = "ScCciGetInterfaceVersion()\n";
Byte[] sendBytes = Encoding.ASCII.GetBytes(test);
sendStream.Write(sendBytes, 0, sendBytes.Length);
sendStream.Close();
client.Close();
textBox1.Text += "Msg Sent!";
}
catch (System.Exception ee)
{
textBox1.Text += ee.ToString(); ;
}
其中 test 是 string test = "ScCciTest(\"Hello\")\n";
從幫助中我們可以看到,它的功能是測試通信是否成功,如果成功,samlight會彈出一個Messagebox,內(nèi)容就是ScCciTest的參數(shù)。

程序如果成功運行,Samlight出現(xiàn)如下對話框:

證明實驗成功了!
所有對應(yīng)Function的函數(shù),基本上都有對應(yīng)的ASCII命令函數(shù),ASCII命令都可以通過上述方式,發(fā)送到Samlight。
參考
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.tcpclient.aspx
