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

标题: WIFI/蓝牙智能小车机器人操控平台源码API调用说明 [打印本页]

作者: liuviking    时间: 2012-5-17 12:37
标题: WIFI/蓝牙智能小车机器人操控平台源码API调用说明
本帖最后由 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());


      



作者: guilty2468    时间: 2012-5-17 13:18
辛苦辛苦!!!谢谢谢谢,我再买几个路由,嘿嘿
作者: liweili201    时间: 2012-5-17 13:52
支持!
楼主无私!
作者: guilty2468    时间: 2012-5-17 16:43
SendCMD(int controlType, byte[] byteData, SerialPort comm);
中如果type是wifi模式,那么serialPort comm 还有用么?
作者: 零用钱    时间: 2012-5-17 16:56
:) 辛苦了  工作之余还写这些
作者: liuviking    时间: 2012-5-17 22:59
guilty2468 发表于 2012-5-17 16:43
SendCMD(int controlType, byte[] byteData, SerialPort comm);
中如果type是wifi模式,那么serialPort co ...

引擎会自动判断,如果是WIFI,则不走COMM分支。
作者: princetong    时间: 2012-5-22 16:24
多谢啦!!
作者: liulijk    时间: 2012-5-26 00:19
多谢{:2_31:}
作者: tfglgl    时间: 2012-6-8 19:18
顶起来啊:)
作者: woniufeiyuqian    时间: 2012-6-9 14:18
谢谢,楼主!:)
作者: 一念心开    时间: 2012-6-27 09:44
顶起                        
作者: xb000000    时间: 2012-6-29 13:38
学习了
作者: robotStudio    时间: 2012-6-29 17:02
楼主的开源精神真是可敬

作者: wwww6662003    时间: 2012-7-22 09:43
楼主辛苦了
作者: upl    时间: 2012-7-23 18:50

作者: liujajia    时间: 2012-7-27 09:50
哈俣,谢谢楼主大公无私
作者: taoriran    时间: 2012-8-3 16:26
感谢分享!
作者: lzlday    时间: 2012-8-5 16:50
谢谢楼主分享。。
作者: 莹莹宝    时间: 2012-8-6 18:39
好像是vc哦
作者: zhangfanjm    时间: 2012-8-18 14:03
支持,支持
作者: chriscctt    时间: 2012-8-18 14:39
请问:控制端发送命令后,路由器怎么把命令通过TTL端传给单片机?
          我发了命令后,用串口助手接收路由器TTL端的信息;怎么一点信息都没有呢?
          是不是跟端口设置有关?
作者: liuviking    时间: 2012-8-18 14:54
chriscctt 发表于 2012-8-18 14:39
请问:控制端发送命令后,路由器怎么把命令通过TTL端传给单片机?
          我发了命令后,用串口助手接收 ...

路由上要有一个转发程序将指令转发至串口,具体的请看工作室的教程。
作者: aking_gong    时间: 2012-8-19 14:48
非常感谢。很好教程
作者: 大头BB    时间: 2012-9-1 03:56
liuviking 发表于 2012-8-18 14:54
路由上要有一个转发程序将指令转发至串口,具体的请看工作室的教程。

楼主,我已经按你提供的方法写了,然后中断后查看即时信息也是跟你写的那个上位机控制的即时信息一样,为什么你的可以发送的到数据,而我的没办法发送出去呢?求助啊!!!!
作者: beata520    时间: 2012-9-7 14:22

谢谢,楼主!


作者: zp好奇号    时间: 2012-9-19 13:31
学习!谢谢!
作者: liuzeyao    时间: 2012-9-23 21:38
很有用 学习了
作者: pengox    时间: 2012-10-20 16:00
辛苦辛苦!!!谢谢谢谢
作者: 土豆一麻袋    时间: 2012-10-20 20:57

“元方,这资料你怎么看?”
“大人,这资料必须得顶啊!”
作者: caijin    时间: 2012-10-21 09:16
谢谢,楼主分享!
作者: mywifi    时间: 2012-10-25 22:15
谢谢,版主
作者: 钢铁侠    时间: 2012-11-5 11:26
辛苦了啊!!!
作者: caijin    时间: 2012-11-5 17:00
谢谢,楼主!
作者: heimantou    时间: 2012-11-9 16:19
顶起。。。
作者: whble    时间: 2012-11-18 11:58
lzv5  谢谢分享
作者: caomuhui    时间: 2012-11-20 09:49
好贴,精华!!
作者: robotStudio    时间: 2012-11-21 10:43
LZ辛苦了。
作者: fengzi    时间: 2012-12-1 20:07
谢谢无私奉献
作者: carfans    时间: 2012-12-5 16:57
这个资料太棒了!顶LZ
作者: 潘古野    时间: 2012-12-13 22:00
要好好研究研究!
作者: zhang_xin_jia    时间: 2012-12-13 22:55
{:3_41:}。。。。。。定。。菜鸟路过
作者: loveuyou34    时间: 2012-12-28 21:37
好贴啊,强帖啊,这要加分啊
作者: ken0912    时间: 2013-1-12 10:29
好東西 努力學習中  感謝分享!
作者: zwqatzjg    时间: 2013-2-3 23:30
commadengine.dll里封装的代码我想看看,借鉴用下,可以吗,版主
作者: zwqatzjg    时间: 2013-2-3 23:39
公开引擎代码就好了,我想代码都自己编{:3_55:}
作者: liuviking    时间: 2013-2-3 23:55
zwqatzjg 发表于 2013-2-3 23:30
commadengine.dll里封装的代码我想看看,借鉴用下,可以吗,版主

抱歉,引擎代码不公开的。
作者: kx33633    时间: 2013-3-12 16:12
{:3_45:}{:3_45:}
作者: lingxiao1980    时间: 2013-3-14 08:47
顶起来,支持楼主
作者: wifi_Tiger    时间: 2013-3-21 10:13
学习中好资料
作者: lf8013    时间: 2013-4-1 23:25
谢谢,不知道怎么可以改成delphi的程序
作者: 18842649592    时间: 2013-4-11 14:23
顶起来  太棒了

作者: futurehi    时间: 2013-4-18 10:54
有个疑问  这个上位机是楼主原创  如果引用了你的数据引擎  在编程思路都正确的情况下   自己写的上位机可以正常用吗?
最近在做毕设   C#刚入门怕弄错方向想问下节省时间     如果不可以就换个方向研究web之类了 。。   
作者: liuviking    时间: 2013-4-18 11:19
futurehi 发表于 2013-4-18 10:54
有个疑问  这个上位机是楼主原创  如果引用了你的数据引擎  在编程思路都正确的情况下   自己写的上位机可以 ...

引擎绑定了版权信息,如果自行修改了标题栏是无法正常使用的。建议有需要的自行下载论坛的基本版源代码工程,可以任意修改。
作者: futurehi    时间: 2013-4-18 11:30
原来是这样的  版权问题可以理解~  那个基本源代码是V1.1那个对吧  另外问下 你视频窗口控件是windowcamera  我看了你论坛的回复是自己写的控件  那我要怎么引用控件额{:3_58:}
作者: liuviking    时间: 2013-4-18 11:47
futurehi 发表于 2013-4-18 11:30
原来是这样的  版权问题可以理解~  那个基本源代码是V1.1那个对吧  另外问下 你视频窗口控件是windowcamera ...

直接作为一个控件,从工具箱拖出来就行了。
作者: wyy_jjd    时间: 2013-4-21 21:38
好动西。谢谢分享
作者: 攻城士    时间: 2013-4-27 11:20
顶楼主一个!!
作者: wangdoudou    时间: 2013-5-6 11:32
楼主 真的是大好人啊 。。。。。学习了很多东西啊。。。以前就是个小白啊。。。。。
作者: bcxy    时间: 2013-5-18 12:44
顶起来~~~~~~~~·
作者: doodoo    时间: 2013-6-5 16:21
mark,一遍后用
作者: mzb2012    时间: 2013-6-19 13:28
顶起





作者: 951d    时间: 2013-6-25 10:44
楼主辛苦了!
作者: hanxia    时间: 2013-10-17 00:07
多谢楼主分享~~~
作者: yongyuan824    时间: 2014-1-17 21:13
感谢楼主无私
作者: 公孙然迹    时间: 2014-3-3 19:45
厉害啊,可是我还想了解一下关于协议的东东
作者: 公孙然迹    时间: 2014-3-3 19:48
比如以c为基础的简单wifi通信协议
作者: ske222    时间: 2014-5-13 23:17
真的是很大公无私!
作者: 我想做个机器人    时间: 2014-5-22 19:17
楼主的无私奉献值得学习。菜鸟一个不能分享什么。不过会好好加油做。
作者: libin98888    时间: 2014-6-11 08:35
楼主  加油  无私奉献值得学习
作者: zhangyipeng    时间: 2014-7-12 09:21
给力,学了
作者: 银河    时间: 2014-11-7 16:03
找到宝贝了{:soso_e113:}
作者: 小YE    时间: 2014-11-20 23:57
多谢,楼主
作者: 洋槐朵朵笑    时间: 2014-11-24 12:00
楼主很赞  需要使劲学习
作者: lefan520    时间: 2014-11-28 20:21
进阶进阶再进阶
作者: suyijiang    时间: 2015-1-26 21:48
感谢楼主的无私分享,谢谢!!!!!!
作者: king7777    时间: 2015-2-27 11:21
谢谢楼主{:soso_e113:}好好学习一下
作者: joebai    时间: 2015-3-6 21:34
{:soso{:soso_e179:}厉害
作者: 商周    时间: 2015-4-9 12:11
改动上位机图标的地方在哪里?
作者: Angle    时间: 2015-5-7 13:10
楼主有没有vc的DEMO啊,希望能指导一下,谢谢啦
作者: 从心开始    时间: 2015-5-23 22:34
没有接收数据的函数吗
作者: warrior    时间: 2015-5-25 09:28
第12个在代码里面怎么实现呀,我的源码是论坛里的,都好几天了,不知道怎么下手。有没有做过的帮一下,谢谢。
作者: guanzhiyuan    时间: 2015-7-21 21:49
支持楼主,楼主真是大公无私!!!
作者: 1686046416    时间: 2015-7-26 12:44
早晚也要能做出来
作者: 会飞的鱼    时间: 2015-11-16 15:03
谢谢楼主,辛苦了。
作者: qlffl703    时间: 2016-2-10 07:18
支持一下, 支持一下!
作者: 明明就    时间: 2017-2-13 13:58
怎么用这个dll引擎
作者: a405701450    时间: 2017-2-22 12:18
谢谢楼主!很有帮助
作者: mialuz    时间: 2017-2-23 21:41
学习学习学习学习
作者: hekevin    时间: 2017-3-2 20:10
谢谢大侠分享!顶一个
作者: gf128    时间: 2017-3-14 13:58
太好了,学习了,感谢
作者: hekevin    时间: 2017-3-27 15:06
谢谢老师分享,顶一个!!!!!!
作者: 小木刺客    时间: 2017-5-16 16:51
楼主请教一个问题,开放的手机app代码里可以接收显示视频,也可以通过手机向小车发送指令,但是我想把传感器信息传到手机手机上显示,尝试了多次都失败了。今天我单独测试,收到了传感器数据,但是视频又无法播放了,求楼主指点
作者: coldpanda    时间: 2017-7-31 00:31
好强大,赶紧膜拜
作者: coldpanda    时间: 2017-7-31 00:35
数据驱动引擎,好高大上
作者: niudaohong    时间: 2018-5-11 10:19
要好好学习
作者: air-wolf    时间: 2021-12-31 14:00
谢谢分享。




欢迎光临 小R科技-WIFI机器人网·机器人创意工作室 (http://www.wifi-robots.com/) Powered by Discuz! X3.4