函式庫使用方法
在函式庫中包含EthernetLightingController
與Rs232LightingController
類別,分別提供Ethernet與RS232通訊介面的控制器控制方法。
Warning
在使用以下功能前,務必確保PC端的設定已經穩當並將控制器改為外部設定,請參考文件通訊介面設定
EthernetLightingController
與Rs232LightingController
都繼承了ILightingController
介面,此介面包含了以下功能:
- Open(string host)
- Close()
- SendCommand(string command)
- SetIntensity(int channel, int intensity)
- SetIntensity(IChannelController channel, int intensity)
- SetStrobeMode(int channel, StrobeModes mode)
- SetStrobeMode(IChannelController channel, StrobeModes mode)
- SetOnOff(int channel, bool mode)
- SetOnOff(IChannelController channel, bool mode)
- CheckSum(string command)
建立Controller
建立LightController有三種方法:
- 建立Rs232LightingController(RS232介面)
- 建立EthernetLightingController(Ethernet介面)
- 從LightingControllerProvider獲取
以VLP-2430-2控制器為例,以下將示範初始化控制器物件並設定:
ILightingController controller = new Rs232LightingController("VLP-2430-2", 2); controller.Open("COM1"); // 開啟通道 controller.SetIntensity(0, 255); // 將channel 0的光源亮度值設為255 controller.SetStrobeMode(0, StrobeModes.F1) // 將channel 0的Strobe Mode設為F1 controller.SetOnOff(0, true); // 將channel 0設為啟用
以VLP-2460-4eN控制器為例,以下將示範初始化控制器物件並設定:
ILightingController controller = new EthernetLightingController("VLP-2460-4eN", 4); controller.Open("192.168.11.20"); // 開啟通道 controller.SetIntensity(0, 255); // 將channel 0的光源亮度值設為255 controller.SetStrobeMode(0, StrobeModes.F1) // 將channel 0的Strobe Mode設為F1 controller.SetOnOff(0, true); // 將channel 0設為啟用
函式庫內提供了LightingControllerProvider,可以直接透過型號取得控制器物件:
ILightingController controller = LightingControllerProvider.GetController("VLP-2460-4eN"); controller.Open("192.168.11.20"); // 開啟通道 controller.SetIntensity(0, 255); // 將channel 0的光源亮度值設為255 controller.SetStrobeMode(0, StrobeModes.F1) // 將channel 0的Strobe Mode設為F1 controller.SetOnOff(0, true); // 將channel 0設為啟用
Warning
在下SetIntensity指令後,亮度並不會立刻改變,更新的值會在下一次ON的時候改變,因此必須再下SetOnOff指令去更新控制器內部的參數。另外,也可以透過設定AutoUpdate這個屬性,讓更改完參數後自動更新控制器內部參數。
AutoUpdate屬性使用方法:
// AutoUpdate = false controller.SetIntensity(0, 255);// 不會立刻更新亮度 controller.SetOnOff(0, true);// 重新啟動Channel並更新亮度 // Autoupdate = true controller.AutoUpdate = true; controller.SetIntensity(0, 255); // 設定新值後重新啟動Channel並更新亮度
Change IP
EthernetLightingController
提供了改變控制器IP的方法,請參考以下程式碼:
EthernetLightingController controller = new EthernetLightingController("VLP-2460-4eN", 4); controller.ChangeIP("192.168.11.21"); // 改變控制器IP
設定新IP後必續重新啟動控制器才會生效,重開控制器後必須要使用新的IP連入。
Tip
ChangeIP中的IP有嚴謹的規範,必須符合"192.168.11.xxx"的模板,xxx的部分為0~255。