本帖最后由 liuviking 于 2012-5-17 22:58 编辑
WIFi机器人网·机器人创意工作室 WIFI/蓝牙智能小车机器人操控平台API调用说明
数据驱动引擎CommandEngine.dll
使用该引擎必须先进行初始化,本人已经将该引擎初始化为RobotEngine2实例,以下均以该实例为基础,介绍各个功能的调用。
函数说明
1、public IPEndPoint IPE { get; set; }
作用:属性构造器
参数:IPEndPoint 的实例
例程:
ips = IPAddress.Parse(controlIp.ToString());
ipe = new IPEndPoint(ips, Convert.ToInt32(port.ToString()));
RobotEngine2.IPE = ipe;
2、public Socket SOCKET { get; set; }
作用:属性构造器
参数:Socket的实例
例程:
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
RobotEngine2.SOCKET = socket;
3、public byte[] CreateData(byte type, byte cmd, byte data);
作用:构建数据包
参数:type:类型位,cmd:命令位,data:数据位
返回值:返回5位byte格式数据包,包头包尾均为FF,无校验位
例程:
byte [] data= CreateData(0x01, 0x02, 0x03);
返回的data的值为:FF 01 02 03 FF
4、public void DrawSignal(int signalType, Graphics g, int x, int y, int PenWidth);
作用:在指定控件上生成十字准星或圆形准星
参数:singalType:准星类型,0为十字,1为圆形;g:控件的PaintEventArgs.Graphics值;x:控件长度;y:控件宽度;PenWidth:画笔粗细
例程:
private void cameraWindow_Paint(object sender, PaintEventArgs e)
{
RobotEngine2.DrawSignal(signalType,e.Graphics,this.cameraWindow.Width,this.cameraWindow.Height,2);
}
该函数必须运行在控件的Paint事件中,以使每次重绘的时候能调用。
5、public byte[] HexStringToByteArray(string s);
作用:把字符串转换为byte []格式的数据包
参数:string 格式字符串,符合16进制格式的偶数位字符串
返回值:byte []格式的数据包
例程:
byte [] data= HexStringToByteArray(“FF000100FF”);
返回data值为:FF 00 01 00 FF
6、public void SendCMD(int controlType, byte[] byteData, SerialPort comm);
作用:重载函数,发送byte数据包格式指令
参数:controlType:类型,0为WIFI模式,1为蓝牙模式;byteData:byte[]格式数据包,comm:蓝牙串口,SerialPort类型。
例程:
byteData= CreateData(“FF000100FF”);
comm=this.SerialPort1;
RobotEngine2.SendCMD(0, byteData, comm);
该段程序将以WIFI模式,将byteData数据包发送至指定socket;
byteData= CreateData(“FF000100FF”);
comm=this.SerialPort1;
public void SendCMD(1, byteData, comm);
该段程序将以蓝牙模式,将byteData数据包发送至指定串口comm
7、public void SendCMD(int controlType, string CMD_Custom, SerialPort comm);
作用:重载函数,发送string数据包格式指令
参数:controlType:类型,0为WIFI模式,1为蓝牙模式; CMD_Custom: string格式数据包,comm:蓝牙串口,SerialPort类型。
例程:
String s=“FF000100FF”;
comm=this.SerialPort1;
RobotEngine2.SendCMD(0, s, comm);
该段程序将以WIFI模式,将s数据串发送至指定socket;
String s=“FF000100FF”;
comm=this.SerialPort1;
RobotEngine2.SendCMD(1, s, comm);
该段程序将以蓝牙模式,将s数据串发送至指定串口comm
8、public void SendDataInComm(SerialPort comm, byte[] data);
作用:重载函数,用于直接从蓝牙串口发送byte格式的数据包
参数: comm:SerialPort类型的串口实例,data:byte[]格式的数据包
例程:
comm=this. SerialPort1;
data= CreateData(“FF000100FF”);
RobotEngine2.SendDataInComm(SerialPort comm, byte[] data);
该段程序将byte格式的数据包data从指定的串口comm(SerialPort1)发送出去。
9、 public void SendDataInComm(SerialPort comm, string data);
作用:重载函数,用于直接从蓝牙串口发送string格式的数据
参数: comm:SerialPort类型的串口实例,data:byte[]格式的数据包
例程:
comm=this. SerialPort1;
RobotEngine2.SendDataInComm(SerialPort comm, “FF000100FF”);
该段程序将string格式的数据字符串从指定的串口comm(SerialPort1)发送出去。
10、 public void SendHeartCMD(int controlType, SerialPort comm);
作用:发送心跳包,每隔10S发送一次,维持长时间与服务端的连接。
参数:controlType:类型,0为WIFI模式,1为蓝牙模式,comm: SerialPort类型的蓝牙串口实例
例程:
comm=this. SerialPort1;
RobotEngine2. SendHeartCMD (0, comm);
该程序将以每10秒一次向WIFI信道发送心跳包 FFEFEFEEFF
11、public bool SocketConnect();
作用:Socket连接函数,通过WIFI连接路由服务端,该连接为异步回调。
参数:该函数参数较特别,其连接需要用到socket,该socket来自于属性构造器SOCKET,故在调用该参数前,先完成socket的实例化,并参考函数2,将其赋值给SOCKET属性。
返回值:函数返回bool值,如果连接成功为true,失败为false。
例程:
Bool ret;
ret = RobotEngine2.SocketConnect();
执行此段程序,如果连接成功WIFI路由,返回true,否则false
12、public void TakePhoto(Bitmap snapshot, string RootPath, string FileName);
作用:拍照函数,用以拍摄控制平台上的照片,并以BMP格式保存在RootPath+ FileName路径中。
参数:snapshot:当前视频窗口的bitmap格式对象;RootPath:照片保存的路径;FileName:照片文件名。
例程:
RobotEngine2.TakePhoto(cameraWindow.Camera.LastFrame, ImagePath, CreatePictureFile());
|