CN100389583C - 一种命令传送方法 - Google Patents

一种命令传送方法 Download PDF

Info

Publication number
CN100389583C
CN100389583C CNB2004101025407A CN200410102540A CN100389583C CN 100389583 C CN100389583 C CN 100389583C CN B2004101025407 A CNB2004101025407 A CN B2004101025407A CN 200410102540 A CN200410102540 A CN 200410102540A CN 100389583 C CN100389583 C CN 100389583C
Authority
CN
China
Prior art keywords
command
character string
order
parameter
receiving terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004101025407A
Other languages
English (en)
Other versions
CN1633126A (zh
Inventor
游明琦
刘勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2004101025407A priority Critical patent/CN100389583C/zh
Publication of CN1633126A publication Critical patent/CN1633126A/zh
Application granted granted Critical
Publication of CN100389583C publication Critical patent/CN100389583C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明有关一种命令传送方法,包括:将命令划分为不同的命令类型,设定不同类型命令的参数对应的处理方式,当进行命令传送时,命令发送端首先将当前命令的命令字转换成字符串,再根据当前命令所属命令类型对其参数进行相应处理后发送;命令接收端将接收的命令字字符串转换为对应命令,并根据接收命令的类型对接收的参数数据进行相对应的转换处理。采用本发明的方法能够简单、快捷地实现近距离设备之间的命令数据传送。

Description

一种命令传送方法
技术领域
本发明涉及设备之间的通信,尤指一种设备之间传送命令数据的方法。
背景技术
一般情况下,设备之间的通信协议有很多种,比如TCP等,这些通信协议比较复杂,而且还有误码、校验、重发等等机制,系统非常庞大,在通信信道容易被干扰的环境是这种通信协议最佳的应用场合。
其实,对于距离很近的设备之间进行通信时,由于两个通信设备相隔很近(一般在2米以内),通信信道稳定,很难受到外界干扰而造成误码,因此,并不需要校验、重发等复杂的通信机制来保障通信的可靠性和正确性。特别是对于主从设备之间的通信,由于主设备固定为命令发起者,从设备只是被动接收命令或数据,主从设备之间很少或没有信令的交互,在这样的应用中使用TCP等通信协议进行通信并不能为系统带来性能上的极大提高,而且使系统变得复杂庞大,为此,可以寻求一种相对较简单的通信机制来实现近距离的主从设备之间的命令数据传送。
发明内容
本发明提供一种命令传送方法,以解决现有技术中近距离设备之间通信时需采用复杂通信协议的问题。
本发明的命令传送方法包括:将命令划分为如下三种类型:
第一类型:命令参数为字符串;
第二类型:命令参数为非字符串,且参数数据的个数小于设定的阈值;
第三类型:命令参数为非字符串,且参数数据的个数大于等于设定的阈值;
当进行命令传送时,执行下列步骤:
A、判断当前命令是否为第一类型命令,若是,则将当前命令的命令字转换成字符串,并将转换后的命令字字符串、参数字符串和命令结束标识符顺序发送给命令接收端,转至步骤D;否则,执行步骤B;
B、判断当前命令是否为第二类型命令,若是,则将当前命令的命令字及其参数转换为字符串,并将转换后的命令字字符串、参数字符串和命令结束标识符顺序发送给命令接收端,转至步骤D;否则,执行步骤C;
C、计算出当前命令的参数数据长度,将当前命令字及计算出的长度值分别转换为字符串,并将转换后的命令字字符串、长度值字符串和命令结束标识符顺序发送给命令接收端,并在发送完成后,连续发送所述参数数据;转至步骤D;
D、命令接收端接收到一个完整的命令后,首先将接收的命令字字符串转换为相应命令;再判断出当前接收命令所属的命令类型,若为第一类型命令,则将接收的参数字符串作为当前命令的参数;若为第二类型命令,则将接收的参数字符串转换为对应参数数据;若为第三类型命令,则将接收的长度值字符串转换为长度数值,并连续接收相同长度的数据作为当前命令的参数数据。
在命令发送端和命令接收端分别存储所述命令及其所属命令类型对照表;命令发送端和命令接收端根据存储的所述对照表,判断出当前命令所属的命令类型。
所述字符串是以ASCII码定义的字符串。
根据本发明的上述方法,若所述命令没有命令参数,则仅将其命令字转换为字符串发送。
若所述命令带有命令参数,则在转换后的命令字字符串和参数字符串之间插入分隔符;接收端分析接收的命令中是否有约定的分隔符,若有,则将接收的第一个分隔符之前的数据信息转换为命令字。
若所述参数字符串不止一个,则在参数字符串之间插入分隔符,用以区分不同的参数;接收端根据接收的命令类型将分隔符前后的数据进行相应处理。
所述分隔符为空格。
所述命令结束标识符为回车符。
采用本发明的方法能够简单、快捷地实现近距离设备之间的命令数据传送。
附图说明
图1为本发明方法命令发送端发送命令流程图;
图2为本发明方法发送的命令字符串示意图;
图3为本发明实施例中传送参数数据示意图;
图4为本发明方法命令接收端接收命令流程图。
具体实施方式
本发明的命令传送方法,需要首先在命令发送端和接收端约定全部命令的命令字,并使每一个命令的命令字唯一。由于使用C语言进行软件开发中要求各个函数名不能重复,因此对应这个函数的命令字可以是它的函数名,这样保证了命令的唯一性。根据每个命令的不同,可以带有参数或不带参数。有些命令的参数可以有多个,甚至于可以是一长串的参数数据。
根据命令所带参数的不同,本发明将命令划分为如下三种类型:
第一类型:命令参数为字符串;
第二类型:命令参数为非字符串,且参数数据的个数小于设定的阈值;
第三类型:命令参数为非字符串,且参数数据的个数大于等于设定的阈值。
本发明预先在在命令发送端和命令接收端分别存储全部命令及其所属命令类型对照表。当发送端向接收端发送命令时,命令发送端首先将当前命令的命令字转换成字符串,其发送流程如图1所示,包括下列步骤:
步骤S11:根据存储的命令类型对照表查找当前待发送命令所属的命令类型;
步骤S12:判断当前命令是否为第一类型命令,即当前命令的参数是否为字符串,若是,执行步骤S13,否则,执行步骤S14;
步骤S13:将转换后的命令字字符串、参数字符串和命令结束标识符顺序发送给命令接收端,并在命令字字符串和参数字符串之间插入分隔符;若参数字符串有多个,则参数字符串之间也用分隔符加以隔开,以区分不同的参数;分隔符可以是在发送端和接收端之间约定的任意字符,如空格等;发送的命令字符串结构如图2所示;例如:要想调用void SendString(char*str);调用语句为SendString(“abcdef”);则发送的整个命令数据为“SendStringabcdef\n”,其中,“\n”表示回车符,用作命令结束标识符;
步骤S14:判断当前命令是否为第二类型命令,即当前命令的参数为非字符串,且参数数据小于设定的阈值,若是,则执行步骤S15;否则执行步骤S16;
步骤S15:将命令参数转换为字符串,然后将命令字字符串、转换后的参数字符串和命令结束标识符顺序发送给命令接收端;同样,在命令字字符串和参数字符串之间插入分隔符;若转换后的参数字符串有多个,在参数字符串之间也用分隔符加以隔开,以区分不同的参数;例如:写寄存器命令SetReg(0x100,0x200);其中0x100,0x200都是系统调用的参数,则将这两个参数按16进制数转换为字符串为:“100”,“200”;则发送的整个命令数据为:“SetReg 100200\n”;
步骤S16:若当前命令不属于第一和第二类型命令,则一定是参数数据大于等于设定阈值的第三类命令,对于这类命令,由于参数数据较多,如果都转换成字符串传送给接收端,则整个命令的传送时间较长,为了有效节省数据传送时间,提高传送效率,当命令的参数数据较多时(大于设定的某个阈值),则不再将参数数据进行字符串转换,而采取直接将参数数据发送给接收端的传送方式;为了使接收端能准确无误地接收命令参数,在发送端计算出当前命令的参数数据长度,并将计算出的长度值转换为字符串,然后将命令字字符串、转换后的长度值字符串和命令结束标识符顺序发送给命令接收端,并在发送完成后,连续发送完全部参数数据;例如:发送端希望传送数组buf[100]给接收端,则发送命令为:“WriteBuf 100\n”,紧接着送出buf[100]的内容,如图3所示。
本发明根据命令所带的参数不同,分成了三种方式将命令发送给接收端。相应地,接收端根据接收的命令所属命令类型,对应地还原命令。具体接收方法如图4所示,包括下列步骤:
步骤S31:接收端存储命令类型对照表;
步骤S32:接收端根据命令结束标识符接收完一个完整的命令数据包,并将接收的命令字字符串首先转换成对应命令;
步骤S33:接收端根据接收的命令查找存储的命令类型对照表,确定当前命令的命令类型;若为第一类型命令,则执行步骤S34;若为第二类型命令,则执行步骤S35;若为第三类型命令,则执行步骤S36;
步骤S34:将接收的参数字符串作为当前命令的参数;
步骤S35:将接收的参数字符串转换为对应参数数据,即为当前命令的参数;
步骤S36:将接收的长度值字符串转换为长度数值,并连续接收相同长度的数据作为当前命令的参数数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (8)

1.一种命令传送方法,其特征在于,将命令划分为如下三种类型:
第一类型:命令参数为字符串;
第二类型:命令参数为非字符串,且参数数据的个数小于设定的阈值;
第三类型:命令参数为非字符串,且参数数据的个数大于等于设定的阈值;
当进行命令传送时,执行下列步骤:
A、判断当前命令是否为第一类型命令,若是,则将当前命令的命令字转换成字符串,并将转换后的命令字字符串、参数字符串和命令结束标识符顺序发送给命令接收端,转至步骤D;否则,执行步骤B;
B、判断当前命令是否为第二类型命令,若是,则将当前命令的命令字及其参数分别转换为字符串,并将转换后的命令字字符串、参数字符串和命令结束标识符顺序发送给命令接收端,转至步骤D;否则,执行步骤C;
C、计算出当前命令的参数数据长度,将当前命令字及计算出的长度值分别转换为字符串,并将转换后的命令字字符串、长度值字符串和命令结束标识符顺序发送给命令接收端,并在发送完成后,连续发送所述参数数据;转至步骤D;
D、命令接收端接收到一个完整的命令后,首先将接收的命令字字符串转换为相应命令;再判断出当前接收命令所属的命令类型,若为第一类型命令,则将接收的参数字符串作为当前命令的参数;若为第二类型命令,则将接收的参数字符串转换为对应参数数据;若为第三类型命令,则将接收的长度值字符串转换为长度数值,并连续接收相同长度的数据作为当前命令的参数数据。
2.如权利要求1所述的命令传送方法,其特征在于,在命令发送端和命令接收端分别存储命令及其所属命令类型对照表;
所述命令发送端和命令接收端根据其存储的所述对照表,判断出当前命令所属的命令类型。
3.如权利要求1所述的命令传送方法,其特征在于,所述字符串是以ASCII码定义的字符串。
4.如权利要求1所述的命令传送方法,其特征在于,若所述命令没有命令参数,则仅将其命令字转换为字符串发送。
5.如权利要求1所述的命令传送方法,其特征在于,若所述命令带有命令参数,则在转换后的命令字字符串和参数字符串之间插入分隔符;接收端分析接收的命令中是否有约定的分隔符,若有,则将接收的第一个分隔符之前的数据信息转换为命令字。
6.如权利要求5所述的命令传送方法,其特征在于,若所述参数字符串不止一个,则在参数字符串之间插入分隔符,用以区分不同的参数;接收端根据接收的命令类型将分隔符前后的数据进行相应处理。
7.如权利要求6所述的命令传送方法,其特征在于,所述分隔符为空格。
8.如权利要求1所述的命令传送方法,其特征在于,所述命令结束标识符为回车符。
CNB2004101025407A 2004-12-24 2004-12-24 一种命令传送方法 Expired - Fee Related CN100389583C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004101025407A CN100389583C (zh) 2004-12-24 2004-12-24 一种命令传送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004101025407A CN100389583C (zh) 2004-12-24 2004-12-24 一种命令传送方法

Publications (2)

Publication Number Publication Date
CN1633126A CN1633126A (zh) 2005-06-29
CN100389583C true CN100389583C (zh) 2008-05-21

Family

ID=34848121

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004101025407A Expired - Fee Related CN100389583C (zh) 2004-12-24 2004-12-24 一种命令传送方法

Country Status (1)

Country Link
CN (1) CN100389583C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197959B (zh) * 2007-12-29 2010-12-08 北京创毅视讯科技有限公司 一种终端的控制方法、系统和设备
CN101686198A (zh) * 2008-09-28 2010-03-31 新奥特(北京)视频技术有限公司 一种虚拟演播室系统中的命令传递方法
CN103049244B (zh) * 2012-12-06 2017-04-12 小米科技有限责任公司 一种传输操作指令的方法及装置
CN103955195B (zh) * 2014-05-05 2016-09-14 中国安全生产科学研究院 一种控制指令的发送、响应方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481675A (en) * 1992-05-12 1996-01-02 International Business Machines Corporation Asynchronous serial communication system for delaying with software dwell time a receiving computer's acknowledgement in order for the transmitting computer to see the acknowledgement
CN1181854A (zh) * 1995-04-13 1998-05-13 诺基亚电信公司 适应型用户接口
US5778223A (en) * 1992-03-17 1998-07-07 International Business Machines Corporation Dictionary for encoding and retrieving hierarchical data processing information for a computer system
US5936540A (en) * 1995-12-13 1999-08-10 Eric Bauer Process for the management of concurrent access and device for practicing the same
CN1258413A (zh) * 1998-01-17 2000-06-28 皇家菲利浦电子有限公司 图像产生和编码
KR20010028117A (ko) * 1999-09-17 2001-04-06 서평원 광통신 시스템의 인간친화형 명령어 처리방법
US20040013123A1 (en) * 2002-07-17 2004-01-22 Lsi Logic Corporation Active FIFO threshold adjustment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778223A (en) * 1992-03-17 1998-07-07 International Business Machines Corporation Dictionary for encoding and retrieving hierarchical data processing information for a computer system
US5481675A (en) * 1992-05-12 1996-01-02 International Business Machines Corporation Asynchronous serial communication system for delaying with software dwell time a receiving computer's acknowledgement in order for the transmitting computer to see the acknowledgement
CN1181854A (zh) * 1995-04-13 1998-05-13 诺基亚电信公司 适应型用户接口
US5936540A (en) * 1995-12-13 1999-08-10 Eric Bauer Process for the management of concurrent access and device for practicing the same
CN1258413A (zh) * 1998-01-17 2000-06-28 皇家菲利浦电子有限公司 图像产生和编码
KR20010028117A (ko) * 1999-09-17 2001-04-06 서평원 광통신 시스템의 인간친화형 명령어 처리방법
US20040013123A1 (en) * 2002-07-17 2004-01-22 Lsi Logic Corporation Active FIFO threshold adjustment

Also Published As

Publication number Publication date
CN1633126A (zh) 2005-06-29

Similar Documents

Publication Publication Date Title
CN102098131B (zh) 一种基于动态参数配置的串口数据帧通用组帧解帧方法
CN110177013B (zh) 一种基于FPGA的EtherCAT主从站设计与实现方法
CN102624738B (zh) 一种串口服务器、协转芯片及数据传输方法
EP2571224B1 (en) Method for processing messages on m2m platform and m2m platform system
CN100425081C (zh) 短信收发的编码转换方法及其应用的网络设备
CN101325530B (zh) 一种二级网络及其通信方法
CN100389583C (zh) 一种命令传送方法
US20230283668A1 (en) Sensor data interpreter/converter methods and apparatus for use in low power wide area networks (lpwans)
CN111405534B (zh) 信息传输方法、第一终端及计算机存储介质
CN100576787C (zh) 一种在维护终端与后台设备之间进行大数据量安全传送的方法
CN101369191B (zh) 一种多计算机切换装置以及实现方法
CN100444595C (zh) 一种主从设备通信方法
EP4167507A1 (en) Data transmission method and apparatus, circuit board, storage medium and electronic apparatus
CA1305230C (en) Digital data interface unit
CN103368908A (zh) 网关协议、网关设备及电气设备控制系统
KR100226781B1 (ko) 노드(node)인식(recognition)방법
CN112559470A (zh) 文件格式转换的方法、装置、存储介质及电子设备
CN111880466A (zh) 上位机向可编程逻辑控制器传输数据的方法
CN102013918B (zh) 一种传输数据的方法、系统和装置
US20050266881A1 (en) Apparatus and method for providing a data interface to a plurality of radio transceivers
EP2005665B1 (en) Method and device for data packet assembly
US20050070224A1 (en) Method of using external electronic device on fixed platform to operate short messages through mobile communication device
CN101651688A (zh) 传输信号的方法和系统
CN214278936U (zh) 一种mcbsp和usb转换控制板卡
CN113709169B (zh) 一种基于红外的数据传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080521

Termination date: 20111224