CS机器人二次开发端口总结
1. 简介
漫蛙CS机器人【jī qì rén】😃为方便用户二🌧次开发💂而开放👗了一些【le yī xiē】机器人【jī qì rén】😃控制器端【zhì qì duān】口🕸,包括🌌29999、30001、30004、30011、30020、40011等。本质都是【shì】♊TCP/IP协议,29999连接【jiē】上位机👭(示教器🏵界面【jiè miàn】),30001、30004、30011、30020、40011主要连【zhǔ yào lián】接【jiē】A9,原理都🏨是【shì】♊通过socket通讯发【tōng xùn fā】📄送指定字符串【zì fú chuàn】或其它指定格式控制机器人【jī qì rén】😃或接收【huò jiē shōu】特定的格式数据进行【jù jìn háng】🥧解析【jiě xī】🎨,目前没有动态【yǒu dòng tài】链接【jiē】库连接【jiē】对🚞应的控制器端【zhì qì duān】口🕸,各通讯接【jiē】口相🐵互独立,可以同时使用
2. 操作流程
2.0. 端口简介

2.1. 端口选择
● 29999(Dashboard)端口🧤,可用于【kě yòng yú】机器人【jī qì rén】🥀的上下电操作【diàn cāo zuò】🎾、切换机器人【jī qì rén】🥀的任务或配置⚓、运行🙎,停止,暂停程序等操【xù děng cāo】作【zuò】🎾。
● 30001端口,可用于【kě yòng yú】💁获取机器人【jī qì rén】🌽的各种状态及数🎫据,机器人【jī qì rén】🌽会以10HZ的频率向30001端口发【duān kǒu fā】送机器人【jī qì rén】🌽的状态【de zhuàng tài】数据🍋,还可以【hái kě yǐ】往30001端口发【duān kǒu fā】送脚本命令【lìng】🎴,运动指🌒令【lìng】🎴,控制机【kòng zhì jī】器人【qì rén】🌽运动等🕸。
● 30004(RTSI)端口🥡,全称为实时数据【jù】🥦交互,可用于获取机器人的各种状态及数【tài jí shù】据【jù】🥦,以及设【yǐ jí shè】🚇置输入🌮订阅【dìng yuè】🥁(改变一🔯下🔢IO变量的值【zhí】🕐,调整速度滑块等)与【yǔ】30001端口🥡不同的是【shì】💤可按指定频率订阅【dìng yuè】🥁用户指定的数据【jù】🥦返回,在返回【zài fǎn huí】👘速率方【sù lǜ fāng】面最快可达250HZ。
● 30020(解释器)端口【duān kǒu】,可用于实现一些动态的脚本【de jiǎo běn】⛔排队运行【háng】,比如用户在【yòng hù zài】🔓自己的【zì jǐ de】上位机程序,实时计【shí shí jì】算出一【suàn chū yī】✂些运行【xiē yùn háng】点位😔,用户在【yòng hù zài】🔓程序运🛐行【háng】的过📟程中,将一些实时计【shí shí jì】算的脚本【de jiǎo běn】⛔排队到当前运行【háng】的🏢任务后【rèn wù hòu】🤪。
● 40011(明文状态请求【tài qǐng qiú】🚦)端口,可用于获取机器人的【qì rén de】各种状态及数据【jù】💨或者设【huò zhě shè】置机器人相应的参🤘数(运动指【yùn dòng zhǐ】令和耗🗽时指令【shí zhǐ lìng】✝除外),与其他【yǔ qí tā】🏃获取数😥据端口【jù duān kǒu】🔋相比🧢,属于一问一答式数据【jù】💨回复类【huí fù lèi】型🦁,上位机发送对【fā sòng duì】应的请求【qiú】🚦,机器人返回对🚘应的数据【jù】💨。
● 端口详细使用【xì shǐ yòng】说明可⚾查看对应的端😢口使用【kǒu shǐ yòng】手册技【shǒu cè jì】术🐓资料【zī liào】_机器人技术🐓-漫蛙机器人。
2.2. 端口介绍及作用
2.2.1 29999端口介绍及作用
介绍:
29999端口描述的是🏀 EliRobot 机器人平台开【píng tái kāi】放的【fàng de】 dashboard shell,允许用👤户或开发者通过⬇ TcpSocket 连接【lián jiē】🍀 EliRobot 的29999端口并⛵对其进行访问【háng fǎng wèn】控制【kòng zhì】✉,其中让【qí zhōng ràng】包括机器人的📓上下电🔤操作、切换机🤣器人的📓任务或【rèn wù huò】配置、运行【yùn háng】,停止,暂停程序等操【xù děng cāo】作。
作用:
EliRobot dashboard shell 提供了【tí gòng le】大量的【dà liàng de】命令【lìng】👸,以便与 EliRobot 机器人【jī qì rén】🎬平台进【píng tái jìn】行交互,创建🤯 TcpSocket 客户端并连接【bìng lián jiē】 dashboard shell 后【hòu】,发送对应格式的字符【de zì fú】至🔋 EliRobot,即可控🚊制机器人【jī qì rén】🎬做出相应的命【yīng de mìng】令【lìng】👸 。(端口详细使用🍼教程请🌮查看EliRobot Dashboard 手册或29999端口使【duān kǒu shǐ】用文档技术资料👀_机器人【jī qì rén】🎬技术-漫蛙机【màn wā jī】器人🎬)
2.2.2 30001端口介绍及作用
介绍:
30001端口描【duān kǒu miáo】🗿述的是🖋 EliRobot 机器人平台开🌸放的数【fàng de shù】🐝据获取端口🌖,控制器会提供【huì tí gòng】🕙机器人的数据【de shù jù】状态,例如关节角💛、温度等等,这些数【zhè xiē shù】据都会通过✊ socket 打包以10HZ的频率【de pín lǜ】发送至连接的【lián jiē de】客户端【kè hù duān】。
除了获取机器💸人的状态信息外【wài】,还可以🚵通过💝30001端口发送脚本【sòng jiǎo běn】来控制机器人【jī qì rén】的各种🏢操作【cāo zuò】。
作用:
EliRobot 提供了【tí gòng le】大量状【dà liàng zhuàng】态获取【tài huò qǔ】数据♌,以便与✉ EliRobot 机器人【jī qì rén】🥅平台进🌄行监测,创建 TcpSocket 客户端并连接 30001端口后【duān kǒu hòu】🥛,系统会😸自动返🤚回的对【huí de duì】🖇应格式📩的报文【de bào wén】,可查询机器人【jī qì rén】🥅状态报文表(30001端口详细使用📴教程请查看机器人【jī qì rén】🥅状态报文示例【wén shì lì】或【huò】👉30001端口使【duān kǒu shǐ】用文档【yòng wén dàng】技术【jì shù】资料_机器人【jī qì rén】🥅技术【jì shù】-漫蛙机器人【jī qì rén】🥅)。
2.2.3 30004端口介绍及作用
介绍:
通过【tōng guò】➿socket链接【liàn jiē】📼机器人的30004端口,可以【kě yǐ】😾按指定频率订阅💨用户指定的数据【jù】,例如👽,用户程序socket链接【liàn jiē】📼30004端口后告诉控【gào sù kòng】☕制器,需要订【xū yào dìng】阅💨”payload”变量,以【yǐ】😾125HZ发送【fā sòng】,然后控🕶制器就👎开始按【kāi shǐ àn】⬅125HZ向用户【xiàng yòng hù】🚈程序发🐇送”payload”的值。这个功【zhè gè gōng】💸能叫做RTSI 全称为实时数据【jù】交互(Real-Time Synchronization Interface), 该协议😸提供了【tí gòng le】标准的TCP/IP链接【liàn jiē】📼, 用于与🎳外部程【wài bù chéng】序进行实时的数据【jù】交互。
- 输出【shū chū】🚳:机器人🚙输出【shū chū】🚳整型寄【zhěng xíng jì】存器的值【zhí】、末端负🥑载等
- 输入【rù】:机器人【jī qì rén】浮点输入【rù】寄存📥器、数字输🕐入【rù】IO的状态💼设置【shè zhì】
作用:
- 输出订【shū chū dìng】阅【yuè】👄:客户端【kè hù duān】🃏向 RTSI 服务端【fú wù duān】🌘发送输【fā sòng shū】🤓出订阅【yuè】👄项并发🎯送开始【sòng kāi shǐ】信号后,服务端【fú wù duān】🌘将按照客户端【kè hù duān】🃏所指定的频率周期性发送所订阅【yuè】的🌌数据。
- 输入订【shū rù dìng】🔁阅【yuè】:客户端【kè hù duān】向【xiàng】🕝 RTSI 服务端【fú wù duān】发送输出订阅【yuè】👸项并发送开始信号后【xìn hào hòu】🥘,客户端【kè hù duān】可以向【xiàng】🛫服务端【fú wù duān】发送订📩阅【yuè】的变量的值【liàng de zhí】,服务端【fú wù duān】将会把这些值设置到机器人🥎中。
- 消息【xiāo xī】🚟传输:任何时刻🕺,RTSI 的客户【de kè hù】端和服【duān hé fú】📖务端都可以向🐩对方发【duì fāng fā】送普通【sòng pǔ tōng】🚺消息【xiāo xī】🚟、警告消🕌息【xī】🚟、异常消息【xiāo xī】🚟、错误消息【xiāo xī】🚟。
- 客户端【kè hù duān】运行环【yùn háng huán】境【jìng】:可以为🈂任意的外部链🔨接程序😬。
● 30004端口详🔉细使用🤳教程请【jiāo chéng qǐng】查看机器人【qì rén】RTSI使用说明或【míng huò】😨30004端口使用文档【yòng wén dàng】技术资料🐒_机器人【qì rén】技术-漫蛙机😧器人【qì rén】。
2.2.4 30011端口介绍及作用
介绍:
30011端口【duān kǒu】🏟描述的是【shì】 EliRobot 机器人🥓平台开🤸放的数🐮据获取【jù huò qǔ】😞端口【duān kǒu】🏟,控制器【kòng zhì qì】会提供📳机器人🥓的数据【de shù jù】状态,例如关【lì rú guān】节角、温度等【wēn dù děng】等,这些数据都会【jù dōu huì】通过【tōng guò】😎 socket 打包以10HZ的频率发送至🧚连接的客户端,与【yǔ】30001不同的是【shì】不受机器人🥓模式影响【xiǎng】🏹,无法向🕧端口【duān kǒu】🏟发送脚本。
作用:
EliRobot 提供了大量状【dà liàng zhuàng】🎰态获取🍖数据【shù jù】,以便与 EliRobot 机器人【jī qì rén】平台进行监测🐧,创建 TcpSocket 客户端【kè hù duān】🔒并连接【bìng lián jiē】 30011端口后🏌,系统会自动返回的对应格式的报文【de bào wén】,可查询🔟机器人【jī qì rén】状态报【zhuàng tài bào】㊗文表🗡,可以在机器人【jī qì rén】任何模式下获【shì xià huò】取对应的数据【de shù jù】🍫。
2.2.4 30020端口介绍及作用
介绍:
系统进入解释⛺器模式后,允许编【yǔn xǔ biān】程人员【chéng rén yuán】🆘在任务【zài rèn wù】运行时【yùn háng shí】发送并排队运行脚本【háng jiǎo běn】语句,只需要脚本语句【běn yǔ jù】为有🐎效的python语句即🌭可,用户可【yòng hù kě】以将脚【yǐ jiāng jiǎo】本语句【běn yǔ jù】通过30020端口【duān kǒu】,发送到🦇控制器🧗,控制器🧗解收之后,会根据Ⓜ当前的状态,对语句🤺进行编【jìn háng biān】♉译运行【yì yùn háng】。发送到🦇30020端口【duān kǒu】的🎑脚本语句【běn yǔ jù】,会以队【huì yǐ duì】列的方式存储【shì cún chǔ】📄在控制🍺软件内部【bù】,并按顺🚄序执行🍷。
脚本语【jiǎo běn yǔ】句必须为单行语句,并以【bìng yǐ】😆\n作为结🕞束符【shù fú】🈂,如 set_tcp([0,0,0,0,0,0])\n。
● 30020端口详细使用教程请【jiāo chéng qǐng】📐查看机器人【jī qì rén】解释器模式使用🐈说明或30020端口使⛄用文档【yòng wén dàng】技术🖲资料【zī liào】🔬_机器人【jī qì rén】技术🖲-漫蛙机【màn wā jī】器人。
作用:
用于实现一些【xiàn yī xiē】🐙动态的🐍脚本插🎾队运行,比如用户在自己的上位机程序,实时计【shí shí jì】📕算出一些运行【xiē yùn háng】点位,用户在程序运【chéng xù yùn】行的过程中【chéng zhōng】📄,将一些⛰实时计【shí shí jì】📕算的脚本插🎾队到当【duì dào dāng】前【qián】📡运行的任务当中🤯,脚本语句为有【jù wéi yǒu】🎑效的python语句且【yǔ jù qiě】🧗必须为【bì xū wéi】单行语句。
2.2.5 40011端口介绍及作用
介绍:
用于实😒现明文【wén】🧦TCPIP状态请【zhuàng tài qǐng】求,客户端可以连【kě yǐ lián】接到系🌶统的【tǒng de】🏺40011端口,通过下发固定格式的请求报文【wén】🧦,获取机【huò qǔ jī】器人的各种状态及数【tài jí shù】💤据【jù】📨或者设【huò zhě shè】置机器人相应的参数💤,属于一🚙问一答【wèn yī dá】🍾式数💤据【jù】📨回复类型,上位机发送对【fā sòng duì】🧣应的请【yīng de qǐng】🥛求,机器人返回对应的数【yīng de shù】🅾据【jù】📨。该端口与【yǔ】SEC命令⛔相同,不支持运动指令⛔、延时指👶令等耗【lìng děng hào】🎮时指令⛔,仅支持不耗时【bú hào shí】指令执【zhǐ lìng zhí】🛌行。
作用:
目前🙁CS软件目前🙁30001端口无🐱返回值【fǎn huí zhí】⚡,用户有较多的获取返【huò qǔ fǎn】回值⚡的需求【de xū qiú】🔢(比如请【bǐ rú qǐng】求逆解结果)实现起来不够方便🏙。根据该需求🔢,系统增【xì tǒng zēng】加40011端口,用于实🍅现快速【xiàn kuài sù】的明文【de míng wén】数据请🌗求功能【qiú gōng néng】。
40011端口类🏠似于一问一答式与机🤝器人交【qì rén jiāo】互【hù】。
2.3. 端口比较(获取数据信息)
30001、30004、30011、40011端口对【duān kǒu duì】比【bǐ】🤶(获取数据信息👒)
● 30001和【hé】30011端口全数据获🥅取【qǔ】💒,频率均为🗝10HZ,区别【qū bié】30001可以响【kě yǐ xiǎng】应外部脚本输😥入【rù】,30011仅用于外部监🍰测机器人状态,可在任【kě zài rèn】意机器人模式下获取【qǔ】🚷。
● 30001和30004端口,30001为全数据获取,频率为【pín lǜ wéi】🌌10HZ,30004可订阅输出,最高频【zuì gāo pín】率🎃250HZ,例如客🕧户只想【hù zhī xiǎng】获取机👺器人的力值【lì zhí】🚘,可通过30004端口订阅,只接收【zhī jiē shōu】😔力值【lì zhí】🚘,相对于30001更简便,无需考【wú xū kǎo】虑或者【lǜ huò zhě】解析其🏇他数据【tā shù jù】🎙。
● 40011实现明🤯文【wén】TCPIP状态请【zhuàng tài qǐng】求【qiú】🍷,下发固定格式【dìng gé shì】的请求【qiú】🍷报文【wén】,可直接获取机📹器人的各种状态及数据⬆,无需复💨杂的转【zá de zhuǎn】化解析,30001目前无🐡返回值,相对于【xiàng duì yú】用户有【yòng hù yǒu】较多的获取返回值的需求【qiú】📶(比如请🗿求逆解【qiú nì jiě】🤧结果),30001实现起【shí xiàn qǐ】来不够【lái bú gòu】方便🎓。
● 获取数【huò qǔ shù】据各个【jù gè gè】端口选🛵择使用,可根据客户现场实际【chǎng shí jì】应用来🎃选择对🍈应端口。
2.4. 端口比较(控制运动)
● 30001端口无法实现一些动🏦态的脚🗯本排队运行,只能保【zhī néng bǎo】持当前的脚本运行,若第一💋个移动脚💠本没有执行完【zhí háng wán】,下一个【xià yī gè】🕦移动脚💠本已经【běn yǐ jīng】🙅下发,第一个【dì yī gè】移动会【yí dòng huì】🕸直接停【zhí jiē tíng】止,执行下【zhí háng xià】🤢一个移动。
● 30020端口用于在一定的条件下,实现用户脚本【hù jiǎo běn】的排队【de pái duì】运行,比如用户在自己的上位机程🤺序【xù】,实时计🈺算出一些运行点位脚【diǎn wèi jiǎo】本,第一个【dì yī gè】🖱任务在【rèn wù zài】运行的【yùn háng de】🌆过程中【guò chéng zhōng】🍬,将一些【jiāng yī xiē】实时计🈺算的脚本排队🔮到当前♋运行的【yùn háng de】🌆任务后。不会打断第一【duàn dì yī】📲个任务🖱的执行🙇。
3. 常见问题解答
● CS系列支🐽持✏Python脚本运【jiǎo běn yùn】🏹行【háng】🙎,并且脚本【jiǎo běn】📶分为【fèn wéi】sec脚本【jiǎo běn】📶与def脚本【jiǎo běn】📶,def脚本【jiǎo běn】📶为主程【wéi zhǔ chéng】序脚本【jiǎo běn】📶,一次仅支持一🧚个【gè】def脚本运【jiǎo běn yùn】🏹行【háng】🙎,如果在【rú guǒ zài】第一个【gè】⏮def脚本运【jiǎo běn yùn】🏹行【háng】🙎过程中,下发第🎪二个【èr gè】def脚本【jiǎo běn】📶,则会强制停止【zhì tíng zhǐ】💵第一个【gè】⏮运行【háng】🙎中的【zhōng de】👻def脚本【jiǎo běn】📶,去执行【háng】🙎新收到的【de】👻def脚本【jiǎo běn】📶,sec脚本【jiǎo běn】可🗞以与✴def脚本【jiǎo běn】📶同时运行【háng】🙎,不会导【bú huì dǎo】⬛致def脚本【jiǎo běn】📶停止【tíng zhǐ】💵,但🏤sec脚本【jiǎo běn】📶不支持【bú zhī chí】✏运动指令,并且不允许运行【háng】耗时🎿指令(如sleep、串口、socket的【de】👻超时操作等),存在一定的限【dìng de xiàn】🌌制【zhì】。
3.1. 29999端口相关问题
● 29999端口🈺 EliRobot dashboard shell 的控制【de kòng zhì】📶指令在【zhǐ lìng zài】执行时,需要注【xū yào zhù】意机器🔴人的状态是否是处于远程模【yuǎn chéng mó】🍓式,因为有🗼一些指【yī xiē zhǐ】令需要🌘机器人【jī qì rén】在远程模【yuǎn chéng mó】🍓式下才生效。
● dashboard命令以🕒”\n”为结束输入标【shū rù biāo】🧦志【zhì】🧣,但某些🤥第三方Socket工具设计使用鼠标点【shǔ biāo diǎn】🍮击按键提交输入【rù】(不支持物理键🕵盘的Enter提交),因此不【yīn cǐ bú】会自动⏫在输入【zài shū rù】👒末尾添加【jiā】”\n”,导致【dǎo zhì】dashboard认为输入【rù】未完🦔成而不【chéng ér bú】予响应,因此此【yīn cǐ cǐ】📈类情况需在输入【zài shū rù】👒末尾自行添加【háng tiān jiā】结束♊输入标【shū rù biāo】🧦志【zhì】🧣”\n”。
3.2. 30001端口相关问题
● 远程模式【shì】:此时机器人🧣仅能通过外部【guò wài bù】控🐭制源对机器人🧣进行控✉制(比如外【bǐ rú wài】部连接30001后,发送控【fā sòng kòng】🚱制脚本【zhì jiǎo běn】),示教器上🍆,会锁定⛏,任务栏【rèn wù lán】
● 本地模式【shì】:此时机【cǐ shí jī】器人仅能通过【néng tōng guò】示教器对其进【duì qí jìn】行控制🆘,外部的【wài bù de】🤨控制源🛢连接会被强制【bèi qiáng zhì】断🍏开(即连接到30001的服务均会被🍇强制断【qiáng zhì duàn】🍏开),防止发生危险🦌。
● 普通模式【shì】🥃(非远程🏒与本地🍬模式【shì】🥃):如在系🐲统设置中,禁用远程控制🙍模式【shì】🥃,则此时🏘系统会🤖处于普【chù yú pǔ】🏟通模式【shì】🥃,该模式【gāi mó shì】🥃下不会【xià bú huì】对通过30001进行的💔外部控制源进【zhì yuán jìn】行🍪限制【xiàn zhì】,可以理🎣解为是远程模【chéng mó】🍇式【shì】+本地模式【shì】🥃的状态【de zhuàng tài】,但此时无法执行🍪IO的启动【de qǐ dòng】程序的功能,并且无【bìng qiě wú】法执行🍪29999 Dashboard中的远程模【chéng mó】🍇式生效【shì shēng xiào】的指令。
● tcp通信的连包现🥃象【xiàng】🈂(包含30011端口),这个不是咱们的特性,所有的tcp通信都🏵可能有💵这个现【zhè gè xiàn】💵象【xiàng】🈂。(接收到【jiē shōu dào】的是不【de shì bú】是完整报文【bào wén】🚨,那是根据报文【jù bào wén】🚨长度判🕡断的,比如报【bǐ rú bào】文🚨长度是100,本次他【běn cì tā】🕉直接收到【jiē shōu dào】了80,那就要等另外【děng lìng wài】20上来一🥂起解析)。
3.3. 30004端口相关问题
● RTSI 分为协议检查、设置【shè zhì】、同步循【tóng bù xún】环三个🏻步骤🙆,当【dāng】🐗 RTSI客户端接入时需要首先进行【xiān jìn háng】协议版🎱本的校💇验,以确定是否可🚖以继续进行通【jìn háng tōng】信【xìn】
● 数据包🎷都有统【dōu yǒu tǒng】一的结构🕤,都为报【dōu wéi bào】😨文头+报文内【bào wén nèi】容【róng】的形式【shì】💜(有的数据包🎷不需要报文内【bào wén nèi】容【róng】)
● 不同【tóng】🌋变量类型所占字节数【zì jiē shù】不🚄同【tóng】🌋
● 协议数据采用大端模式
● 订阅输🕜入输出🍣需要注意(客户搞【kè hù gǎo】反【fǎn】)
3.4. 30020端口相关问题
● 目前解【mù qián jiě】释中运行【háng】🐣非运动类的耗【lèi de hào】时脚本🈯(如【rú】sleep指令🥫),会完整的等待sleep命令执【mìng lìng zhí】行【háng】🐣结束后🥝,才可以自动退【zì dòng tuì】👐出🛄,中途即【zhōng tú jí】使调用了end_interpreter()命令,也不会😩强制停【qiáng zhì tíng】止耗时🍴脚本🈯运行【háng】🐣。
● 任务运【rèn wù yùn】行状态【háng zhuàng tài】的控制👟,比如暂停、继续【jì xù】、停止等,对解释器模式🌛同样生【tóng yàng shēng】💙效🤲。
● 解释器💠脚本【jiǎo běn】🗼队列数量上限目前为8500条🚕,脚本【jiǎo běn】🗼队列数量超过该数量【gāi shù liàng】时【shí】🤤,再次添加新的【jiā xīn de】🚅解释器💠脚本【jiǎo běn】🗼,会返回【huì fǎn huí】discard信息,并抛弃【bìng pāo qì】🦑新添加的脚本【jiǎo běn】🗼。
● 解释器模式中💫目前不支持start_thread函数调😼用【yòng】,下发的脚本中【jiǎo běn zhōng】🦄,如果包含了🤾start_thread函数调😼用【yòng】,会触发【huì chù fā】对应的【duì yīng de】👗discard。
● V2版本的【bǎn běn de】📌解释器模式,如果运动指令🤬后有转【hòu yǒu zhuǎn】接半径设置,并且没【bìng qiě méi】有在规【yǒu zài guī】定时间😍内,下发后🥝续的运【xù de yùn】动指令🤬,会出现咯噔急停的情况,该现象🍢目前认为是正【wéi shì zhèng】常情况【cháng qíng kuàng】🕑。
● 请关注长时间🎈运行【yùn háng】,大量脚🆓本队列运行【yùn háng】,内存是【nèi cún shì】否存在异常的🧙持续增加🥛,并且通【bìng qiě tōng】🤙过停止运行任【yùn háng rèn】务等操【wù děng cāo】🍒作无法降低的【jiàng dī de】情况。
● clear_interpreter()函数ack后【hòu】,会停止新的脚【xīn de jiǎo】🔃本【běn】🔠ack,此时新的脚【xīn de jiǎo】🔃本【běn】🔠会处于等待状【děng dài zhuàng】态👼,只有当clear_interpreter()执行后【hòu】,才会将等待状【děng dài zhuàng】态的脚【tài de jiǎo】💉本【běn】🔠进行ack。
3.5. 40011端口相关问题
● 下发的id尽量每🏑次不同,这样便于管理,同时在一些同🏷时请求的情况👭,可以区🐈分返回🔙值与请求之间🔘的匹配【de pǐ pèi】关系【guān xì】,(如果没【rú guǒ méi】⤵有同时【yǒu tóng shí】请求的情况👭,理论上【lǐ lùn shàng】来说【lái shuō】id不变也【bú biàn yě】没问题,但并非【dàn bìng fēi】一个好🍜的请求【de qǐng qiú】习惯🈚)。
● 该请求【gāi qǐng qiú】的调用【de diào yòng】函数规【hán shù guī】🌧则与【zé yǔ】🚶SEC函数相👣同,即不可以执行运动指令(如movej命令👩)、不可以执行耗时指令🏁(如sleep等【děng】🏴),不可以执行无【zhí háng wú】法退出的命令😆(如死循环等【huán děng】🏴)。
● 与SEC命令类【mìng lìng lèi】👞似,请求命🔩令并不【lìng bìng bú】会打断【huì dǎ duàn】🍀正在执行的主【háng de zhǔ】🛺函数(即def函数)。