小R科技-WIFI机器人网·机器人创意工作室-中国FPV

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 65336|回复: 94

WIFI/蓝牙智能小车机器人操控平台源码API调用说明

  [复制链接]
发表于 2012-5-17 12:37:14 | 显示全部楼层 |阅读模式
本帖最后由 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());


      


评分

参与人数 1金钱 +3 收起 理由
lei921lei + 3 很给力!

查看全部评分

回复

使用道具 举报

微信关注我们
发表于 2012-5-17 13:18:48 | 显示全部楼层
辛苦辛苦!!!谢谢谢谢,我再买几个路由,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2012-5-17 13:52:35 | 显示全部楼层
支持!
楼主无私!
回复 支持 反对

使用道具 举报

发表于 2012-5-17 16:43:15 | 显示全部楼层
SendCMD(int controlType, byte[] byteData, SerialPort comm);
中如果type是wifi模式,那么serialPort comm 还有用么?
回复 支持 反对

使用道具 举报

发表于 2012-5-17 16:56:08 | 显示全部楼层
:) 辛苦了  工作之余还写这些
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-17 22:59:44 | 显示全部楼层
guilty2468 发表于 2012-5-17 16:43
SendCMD(int controlType, byte[] byteData, SerialPort comm);
中如果type是wifi模式,那么serialPort co ...

引擎会自动判断,如果是WIFI,则不走COMM分支。
回复 支持 反对

使用道具 举报

发表于 2012-5-22 16:24:02 | 显示全部楼层
多谢啦!!
回复 支持 反对

使用道具 举报

发表于 2012-5-26 00:19:42 | 显示全部楼层
多谢{:2_31:}
回复 支持 反对

使用道具 举报

发表于 2012-6-8 19:18:10 | 显示全部楼层
顶起来啊:)
回复 支持 反对

使用道具 举报

发表于 2012-6-9 14:18:41 | 显示全部楼层
谢谢,楼主!:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

猜您想找.......上一条 /10 下一条

QQ|QQ技术咨询Ⅰ|QQ技术咨询Ⅱ|QQ技术咨询Ⅲ|QQ技术咨询Ⅳ|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室-中国FPV ( 粤ICP备12019445 )

GMT+8, 2018-10-16 13:44 , Processed in 1.125528 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表