020网站建设合同范本,腾讯云做网站需要报备,建筑网方成龙,我们做网站 老公弟弟也跟着做1. 引言
AT命令是一种通信协议#xff0c;用于控制和配置各种设备#xff0c;尤其在通信领域中具有重要性。它的名称来源于ATtention#xff08;注意#xff09;#xff0c;因为命令通常以AT开头。AT命令最早被用于调制解调器#xff0c;用于与…
1. 引言
AT命令是一种通信协议用于控制和配置各种设备尤其在通信领域中具有重要性。它的名称来源于ATtention注意因为命令通常以AT开头。AT命令最早被用于调制解调器用于与计算机通信并进行设置。随着技术的进步AT命令逐渐在移动通信、嵌入式设备等领域得到广泛应用。本文将深入探讨AT命令的概念和应用以及它在通信领域中的重要性。
2. AT命令的起源
ATAttention指令是由 Dennis Hayes 发明的所以也称为 Hayes command set。 AT命令作为一种通信协议源于调制解调器的早期发展。在通信领域的发展过程中AT命令逐渐演化成一种通用的控制方式用于控制和配置各种设备。让我们回顾一下AT命令的历史和来源以及它最早应用于调制解调器控制的情况。
2.1 调制解调器时代
AT命令最早的应用场景是在调制解调器Modem中。调制解调器是一种用于将数字信号转换成模拟信号调制和将模拟信号转换成数字信号解调的设备。在调制解调器的早期通过串口连接到计算机的方式用户可以使用终端软件与调制解调器进行交互。
2.2 AT命令的引入
AT命令最初是由调制解调器制造商引入作为一种交互方式允许用户通过终端软件向调制解调器发送各种指令。这些指令用于执行各种操作如拨号、连接到远程服务器、查询设备状态等。由于命令通常以AT开头因此被称为AT命令其中AT表示ATtention注意。
2.3 演进和应用扩展
随着通信技术的发展AT命令的应用范围逐渐扩展到不仅限于调制解调器还包括各种通信设备和嵌入式系统。它逐渐成为控制和配置设备的一种通用方式。AT命令被用于调制解调器、移动通信设备、蓝牙模块、GPS模块等各种设备中。
2.4 AT命令的历史价值
尽管通信技术已经取得了巨大的进步但AT命令作为一种简单而有效的控制协议仍然具有历史价值。它的应用已经超越了调制解调器的范畴成为通信领域中不可或缺的一部分。同时AT命令的历史也让我们了解到通信技术的发展历程和变革。
通过了解AT命令的起源我们可以更好地理解它在通信领域中的重要性和应用价值以及它如何从最早的调制解调器时代演化成今天的通信设备控制方式。
2.4 AT命令应用框图 通常我们把 AT 模块端的解析处理程序称为 AT Server而将控制 AT 模块的处理器端的解析处理程序称为 AT Client。由 AT Client 发起命令请求AT Server 回应处理结果。另外 AT Server 通过 URCUnsolicited result code 来主动给 AT Client 发送数据。 2.5 AT指令标准
V.250该标准于 1995 年建立1998 年重命名为 V.250ETSI GSM 07.073GPP TS 27.007用于控制 GSM modem 的 AT 指令集GSM 07.07 是基于 V.250 标准的。是目前最新的 AT 标准。 http://www.arib.or.jp/english/html/overview/doc/STD-T63v9_30/5_Appendix/Rel10/27/27007-a70.pdf 3. AT命令的基本结构
AT命令作为一种通信协议具有统一的基本结构为设备控制和配置提供了一种简单而有效的方式。本节将深入探讨标准AT命令的基本结构以及AT指令、参数和结果的组成。
3.1 AT指令的基本格式
AT命令的基本格式通常以AT开头后面紧跟具体的命令内容。例如拨打电话的AT命令为ATD发送短信的AT命令为ATCMGS。这个AT前缀告诉设备要执行一个命令。 由于每个厂家的模块不一样实现的功能不一样导致每个 AT 模块厂家有自己的一套私有的 AT 命令集每一个 AT 模块厂家实现的 AT 指令集解析器也不一样解析器实现的 AT 标准功能也参差不齐。
3.2 参数的使用
AT命令可以包含参数这些参数用于指定要执行的操作或配置。参数的具体格式和含义取决于每个命令。例如发送短信的AT命令ATCMGS需要指定短信内容和接收方号码作为参数。
参数可以是数字、字符串、甚至是特殊字符具体取决于命令的需求。例如以下是一些AT命令的示例其中包含了不同类型的参数
“ATD1234567890;”拨打电话到号码1234567890。“ATCMGS“Hello”,123”发送短信内容为Hello接收方号码为123。
3.3 结果的反馈
执行AT命令后设备会返回一个结果反映了命令的执行状态和相关信息。这些结果通常用于判断操作是否成功或者获取进一步的细节。例如执行成功的AT命令可能返回OK表明操作已成功完成。如果命令执行失败可能会返回ERROR或其他错误信息。
3.4 示例代码
以下是一个简单的示例代码使用Kotlin模拟发送AT命令并获取结果的过程
fun sendATCommand(command: String): String {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果val simulatedResponse if (command ATD1234567890;) {Dialing...} else {Unknown command}return simulatedResponse
}fun main() {val atCommand ATD1234567890;val response sendATCommand(atCommand)println(Response: $response)
}上述示例代码模拟了一个拨打电话的AT命令并根据命令返回相应的模拟结果。实际应用中开发者需要将AT命令发送至实际设备并从设备获取真实的结果。
通过理解AT命令的基本结构开发者可以更好地与通信设备进行交互和控制实现各种功能和应用。
4. AT命令的应用领域
AT命令作为一种通用的控制协议在多个领域中都有广泛的应用。本节将深入探讨AT命令在不同领域的应用包括调制解调器、移动通信、嵌入式设备等并特别强调了AT命令在移动通信中的重要性。
4.1 调制解调器
AT命令最早是用于调制解调器的控制和配置。调制解调器是将数字信号转换为模拟信号以实现计算机之间的数据通信。在调制解调器领域AT命令用于控制拨号、挂断、设置连接速率等操作。
4.2 移动通信
在移动通信领域AT命令的应用尤为广泛。移动设备使用AT命令进行各种操作如发送短信、拨打电话、查询网络状态等。一些常见的移动通信AT命令包括
发送短信ATCMGS“PhoneNumber”用于发送短信到指定号码。拨打电话ATDPhoneNumber;用于拨打指定号码的电话。查询网络状态ATCREG?用于查询设备是否注册到移动网络。
4.3 嵌入式设备
在嵌入式设备领域AT命令被用于控制各种硬件模块和外设。例如GPS模块、蓝牙模块等嵌入式设备可以通过AT命令进行配置和控制。
4.4 示例代码
以下是一个示例代码演示如何使用Kotlin模拟发送AT命令并获取结果模拟了发送短信的操作
fun sendATCommand(command: String): String {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果val simulatedResponse if (command.startsWith(ATCMGS)) {Message sent successfully!} else {Unknown command}return simulatedResponse
}fun main() {val atCommand ATCMGS\1234567890\,Helloval response sendATCommand(atCommand)println(Response: $response)
}上述示例代码模拟了一个发送短信的AT命令并根据命令返回相应的模拟结果。实际应用中开发者需要将AT命令发送至实际移动设备并从设备获取真实的结果。
总之AT命令在不同领域的应用使其成为通信和控制的重要工具。通过理解和掌握不同领域中的AT命令开发者可以更好地利用这一协议实现各种功能和应用。
5. 常见的AT命令
5.0 AT命令分类 AT命令分为4类
Test 命令ATx? 测试指令类似于命令行里的 help 指令用于提供该命令的使用信息以及命令参数的取值范围。Read 命令ATx? 用于查询该指令对应功能的当前值。Set 命令ATx... 设置用户指定的参数到对应的功能里。Execute 命令ATx 执行相关操作。
AT命令是通信领域中的重要工具用于配置和控制各种设备和模块。本节将介绍一些常见的AT命令示例以及每个命令的简要解释和示例用法。
5.1 ATCGSN获取IMEI
ATCGSN命令用于获取移动设备的IMEI国际移动设备标识号码IMEI是设备的唯一标识符。
示例用法
ATCGSN响应
1234567890123455.2 ATCMGS发送短信
ATCMGS命令用于发送短信到指定号码。
示例用法
ATCMGS1234567890Hello, this is a test message.
CtrlZ响应
CMGS: 123
OK5.3 ATCREG?查询网络状态
ATCREG?命令用于查询设备是否已注册到移动网络。
示例用法
ATCREG?响应
CREG: 0,1
OK5.4 ATDIAL拨号
ATD命令用于拨打电话到指定号码。
示例用法
ATD1234567890;设备将尝试拨打号码为1234567890的电话
5.5 ATCPIN?查询SIM卡状态
ATCPIN?命令用于查询SIM卡的状态。
示例用法
ATCPIN?响应
CPIN: READY
OK5.6 示例代码
以下是一个使用Kotlin模拟发送AT命令并获取响应的示例代码
fun sendATCommand(command: String): String {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果val simulatedResponses mapOf(ATCGSN to 123456789012345,ATCMGS to CMGS: 123\nOK,ATCREG? to CREG: 0,1\nOK,ATCPIN? to CPIN: READY\nOK)return simulatedResponses[command] ?: Unknown command
}fun main() {val atCommands listOf(ATCGSN, ATCMGS, ATCREG?, ATCPIN?)for (command in atCommands) {val response sendATCommand(command)println(Command: $command\nResponse: $response\n)}
}上述示例代码模拟了发送不同的AT命令并根据命令返回相应的模拟结果。在实际应用中开发者需要将AT命令发送至实际设备并获取真实的响应。
总之这些常见的AT命令示例涵盖了移动通信和设备控制的多个方面开发者可以根据需要使用这些命令来实现各种功能。
6. AT命令的执行与响应
AT命令是通过串行通信接口向设备发送的一系列字符用于配置和控制设备的各种功能。本节将解释设备如何执行AT命令并产生响应并介绍一些常见的响应码的含义。
6.1 AT命令的执行过程
当一个AT命令被发送至设备时设备会根据命令进行相应的操作。一般情况下设备会对命令进行解析和执行并根据执行结果生成一个响应然后通过通信接口将响应返回给发送方。
6.2 AT命令的响应
AT命令的响应通常以字符形式返回常见的响应码有
OK: 表示命令执行成功。ERROR: 表示命令执行失败或命令格式错误。CME ERROR: code: 用于表示扩展的错误情况后跟错误代码。CMS ERROR: code: 用于表示短信相关的错误情况后跟错误代码。
6.3 示例代码
以下是一个使用Kotlin模拟发送AT命令并获取响应的示例代码
fun sendATCommand(command: String): String {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果val simulatedResponses mapOf(ATCGSN to 123456789012345,ATCMGS to CMGS: 123\nOK,ATCREG? to CREG: 0,1\nOK,ATCPIN? to CPIN: READY\nOK,ATDIAL to Dialing...,// 其他AT命令及响应)return simulatedResponses[command] ?: Unknown command
}fun main() {val atCommands listOf(ATCGSN, ATCMGS, ATCREG?, ATCPIN?, ATDIAL)for (command in atCommands) {val response sendATCommand(command)println(Command: $command\nResponse: $response\n)}
}上述示例代码模拟了发送不同的AT命令并获取相应的模拟结果包括常见的OK和ERROR响应。在实际应用中开发者需要将AT命令发送至实际设备并获取真实的响应。
总之AT命令的执行过程涉及设备解析和执行命令并产生相应的响应。开发者需要根据设备的文档和规范来理解不同命令的执行方式和响应码的含义。
7. AT命令的扩展
AT命令的标准覆盖了许多基本和常见的功能但不同厂商可能会根据自己的需求扩展和自定义AT命令以满足特定的应用场景和设备功能。本节将讨论厂商自定义的AT命令和扩展并介绍AT命令和AT%命令之间的区别。
7.1 厂商自定义的AT命令
除了标准的AT命令集不同厂商可能会引入自定义的AT命令来支持特定的功能。这些自定义的AT命令可以用于设备的特定配置、控制和操作。例如一个嵌入式设备制造商可能会引入用于控制设备唯一功能的AT命令。
7.2 AT命令和AT%命令的区别
AT命令通常以AT作为前缀但在某些情况下厂商可能会使用AT或AT%来区分不同类型的命令。这两种前缀的命令可能有不同的用途和语法需要根据设备的文档来理解其具体含义。
一般来说AT命令通常是标准化的命令符合AT命令的标准规范而AT%命令可能是厂商自定义的命令。开发者在使用这些命令时需要仔细查阅设备的文档了解每个命令的用途和语法。
7.3 示例代码
以下是一个示例代码演示如何发送自定义的AT命令以及区分AT和AT%命令
fun sendCustomATCommand(command: String): String {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果val simulatedCustomResponses mapOf(ATCUSTOM to Custom command executed,AT%ANOTHER to Another custom command executed)return simulatedCustomResponses[command] ?: Unknown command
}fun main() {val customCommands listOf(ATCUSTOM, AT%ANOTHER)for (command in customCommands) {val response sendCustomATCommand(command)println(Command: $command\nResponse: $response\n)}
}上述示例代码演示了发送自定义的AT命令模拟了对ATCUSTOM和AT%ANOTHER命令的响应。在实际应用中开发者需要根据设备的文档和规范了解自定义命令的含义和用法。
总之厂商自定义的AT命令和扩展可以帮助设备实现特定的功能和操作而AT和AT%命令的区别需要根据设备文档来理解。开发者在使用这些命令时应遵循设备的规范和要求。
8. AT命令在移动通信中的应用
AT命令在移动通信领域扮演着重要的角色它被广泛应用于呼叫控制、短信发送、网络配置等方面。在这一节中我们将详细介绍AT命令在移动通信中的应用并提供示例代码来演示如何使用AT命令进行移动通信操作。
8.1 呼叫控制
AT命令在呼叫控制方面发挥着重要作用。通过使用不同的AT命令设备可以执行拨号、接听、挂断等呼叫控制操作。以下是一些常见的呼叫控制AT命令示例
ATDnumber;: 拨打指定的电话号码。ATA: 接听当前呼叫。ATH: 挂断当前呼叫。
8.2 短信发送
AT命令也可以用于短信的发送和管理。开发者可以使用AT命令来编写应用实现短信的发送、接收和删除等操作。以下是一些常见的短信操作AT命令示例
ATCMGSnumber: 发送短信给指定的手机号。ATCMGRindex: 读取指定索引的收件箱中的短信。ATCMGDindex: 删除指定索引的短信。
8.3 网络配置
AT命令还可以用于配置和管理设备的网络连接例如配置无线网络、查询网络状态等。以下是一些常见的网络配置AT命令示例
ATCOPS?: 查询可用的运营商列表。ATCGATT1: 打开GPRS附着用于数据连接。ATCGACT1,1: 激活PDP上下文以建立数据连接。
8.4 示例代码
以下是一个简单的示例代码演示如何使用AT命令发送短信和查询网络状态
fun sendSMSUsingATCommand(number: String, message: String) {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果println(Sending SMS to $number: $message)
}fun checkNetworkStatusUsingATCommand() {// 此处为模拟实际应用中需将AT命令发送至实际设备并获取结果println(Checking network status...)val networkStatus Connectedprintln(Network status: $networkStatus)
}fun main() {val phoneNumber 1234567890val messageText Hello from AT command!sendSMSUsingATCommand(phoneNumber, messageText)checkNetworkStatusUsingATCommand()
}上述示例代码演示了如何使用模拟的AT命令函数来发送短信和查询网络状态。实际应用中开发者需要将AT命令发送至实际设备并根据响应处理结果。
总之AT命令在移动通信中有着广泛的应用涵盖了呼叫控制、短信发送、网络配置等方面。开发者可以根据设备的文档和规范使用适当的AT命令来实现各种移动通信操作。
AT命令在移动通信中的应用非常广泛。例如通过AT命令可以发送短信、呼叫指定号码、查询网络状态等。以下是一个使用AT命令发送短信的Kotlin示例代码
fun sendSMS(message: String, phoneNumber: String) {val command ATCMGS\$phoneNumber\// 发送AT命令到设备sendCommandToDevice(command)// 等待设备响应val response waitForResponse()if (response )sendTextMessage(message)
}9. AT命令的安全性和注意事项
在使用AT命令时安全性和注意事项是非常重要的考虑因素。本节将强调在使用AT命令时需要注意的安全性问题以及提供一些使用AT命令的注意事项以避免误操作和不良影响。
9.1 安全性问题
使用AT命令时需要特别注意以下安全性问题 防止滥用AT命令具有强大的控制能力可以对设备进行各种操作。为了防止滥用开发者应该仅允许有权的应用或用户执行AT命令。 恶意操作不当的AT命令操作可能导致设备故障、数据泄露等问题。开发者应该限制对AT命令的访问并避免恶意操作。 权限控制在移动通信设备中一些AT命令可能需要特定的权限才能执行。开发者应该根据需要设置适当的权限控制确保只有授权用户可以执行敏感的AT命令。
9.2 注意事项
在使用AT命令时开发者应该注意以下事项 文档和规范在使用特定设备的AT命令时务必仔细阅读相关文档和规范。了解每个AT命令的用途、参数和响应是十分重要的。 备份和恢复在执行可能影响设备配置或数据的AT命令之前务必进行备份。这样可以在出现问题时进行恢复操作。 误操作风险由于AT命令可以直接操作设备误操作可能导致不良影响。开发者应该小心操作确认每个AT命令的用途和参数。 测试和验证在实际应用中使用AT命令之前建议在测试环境中进行验证。确保AT命令的操作符合预期并不会引发问题。
9.3 示例代码
以下是一个示例代码演示如何通过权限控制来限制AT命令的执行
fun executeATCommand(command: String) {// 此处为模拟实际应用中需根据权限判断是否执行AT命令val isAuthorized checkAuthorization()if (isAuthorized) {// 执行AT命令操作println(Executing AT command: $command)} else {println(Unauthorized to execute AT command: $command)}
}fun checkAuthorization(): Boolean {// 模拟权限检查实际应用中根据用户或应用权限来判断return true
}fun main() {val atCommand ATCMGS\1234567890\, \Hello from AT command!\executeATCommand(atCommand)
}上述示例代码演示了如何通过权限控制函数 checkAuthorization 来限制对AT命令的执行。实际应用中开发者可以根据用户或应用的权限来判断是否允许执行特定的AT命令。
总之在使用AT命令时安全性和注意事项都是需要特别关注的方面。通过合理的权限控制、文档阅读和验证开发者可以确保正确使用AT命令避免不必要的问题和风险。
10. AT命令的未来发展
随着通信技术的不断进步和新兴领域的崛起AT命令也在不断演化和发展。本节将探讨AT命令在新技术和通信标准中的未来发展特别是在5G、物联网等领域的应用。
10.1 AT命令在5G中的应用
5G技术的到来为通信领域带来了革命性的变化AT命令也在适应新的5G网络和功能。一些可能的未来发展包括 更多网络控制5G网络的复杂性可能导致AT命令需要支持更多的网络控制功能如对网络切换、频谱分配等的控制。 低延迟通信5G的低延迟通信特性可能会要求AT命令在实时通信和控制方面提供更高效的支持。 多媒体和AR/VR随着5G网络支持更多的多媒体和增强现实/虚拟现实应用AT命令可能需要扩展以支持这些应用的控制和通信需求。
10.2 AT命令在物联网中的应用
物联网IoT领域的迅速发展也对AT命令提出了新的挑战和机遇 设备连接AT命令在物联网中的应用范围可能会扩展到更多类型的设备包括传感器、智能家居设备等以支持设备之间的连接和控制。 能耗优化物联网设备通常需要在有限的电池寿命下运行因此AT命令可能需要优化以减少能耗延长设备的使用寿命。 安全性物联网中的设备安全性至关重要AT命令可能需要加强安全性功能以确保设备和数据的安全。
10.3 示例代码
以下是一个示例代码演示了如何使用AT命令来控制物联网设备的连接和通信
class IoTDevice(private val port: SerialPort) {fun sendATCommand(command: String) {val response executeCommand(command)println(AT Command: $command)println(Response: $response)}private fun executeCommand(command: String): String {// 此处为模拟实际应用中需通过串口通信发送AT命令并接收响应return OK}
}fun main() {val serialPort SerialPort(COM1)val iotDevice IoTDevice(serialPort)// 控制物联网设备发送AT命令iotDevice.sendATCommand(ATCONNECT)
}上述示例代码演示了一个简单的物联网设备类 IoTDevice它通过串口与主机通信。通过调用 sendATCommand 方法可以向设备发送AT命令并获取响应。在实际应用中开发者需要根据设备的通信方式和协议来实现相应的AT命令交互。
总之AT命令作为通信领域的基础工具随着技术的进步和应用领域的扩展也在不断演进和应用。在未来AT命令可能会在5G、物联网等领域发挥更多的作用为设备连接、控制和通信提供更强大的支持。
11. GWN上AT命令的应用 GWN可以通过外挂USB dongle使用3G/GSM Modem拨号上网、发送短信或者发送邮件。 这种方法相当简单只使用串行/dev/ttyUSB0端口和AT命令来发送短信。 几乎任何基于OpenWrt版本都可以使用并且任何支持USB的OpenWrt设备都可以使用。
如果您的设备类似于WL-520Gu并且具有较小的内置闪存则需要使用以下模块构建自己的OpenWrt固件映像通常通过opkg安装它们会因为内存不足而失败
kmod-usb2 kmod-usb-ohci kmod-usb-serial kmod-usb-serial-option usbutils usb-modeswitch kmod-usb-storage kmod-scsi-core kmod-scsi-cdrom kmod-scsi-generic picocom当我插入USB调制解调器时它检测到scsi驱动器和4个tty设备–/dev/ttyUSB0到ttyUSB3。
我使用picocom连接到调制解调器picocom -b 9600 -f n -p n -d 8 -r /dev/ttyUSB0
键入AT后得到响应“OK”
然后使用以下命令发送短信
ATCMGF1 [set pdu mode to text]
ATCMGS12345678900 [use a valid cell phone number]
Type some messageCtrl-z [type a message terminated with Ctrl-z]过了一会儿我得到了响应“CMGS: 18”
使用该设备只需以上操作。
模式切换(mode switch)
对于ZTE新款dongle来说情况会更复杂一些。ttyUSB设备没有被检测到。这是因为许多大多数手机调制解调器会以scsi设备启动在Windows中scsi设备会自动加载驱动程序并切换模式以启用调制解调器。但在Linux中您必须执行模式切换。有一个专门用于模式切换的程序即usb-modeswitch还有usb-modeswitch-data。在GWN上我需要使用lsusb来自usbutils获取供应商号和产品ID。然后执行usb-modeswitch -v nnnn -p nnnn。执行此操作后dmesg将显示ttyUSB设备0-3然后我就可以像上面那样进行操作。
对于其他设备modeswitch过程可能更复杂。各种网站都有解释。
MPR-A8–无需modeswitch在MPR-A8上使用自行编译的trunk版本在串行控制台上观察先识别了scsi驱动器然后大约30秒后识别了4个ttyUSB设备。我再次登录/dev/ttyUSB0使用microcom并使用上面展示的命令发送了短信消息。
发送邮件
对于我的供应商T-Mobile您还可以使用以下命令发送带有地址号码500的电子邮件在ATCMGF1之后
ATCMGS500
myAddressmyProvider.com/Subject2/sending text.Ctrlz主题位于“/”或“#”之间。
12. 结论
AT命令作为通信领域中的重要工具在多个领域和技术中发挥着关键的作用。从调制解调器到移动通信再到物联网和嵌入式设备AT命令为通信设备的控制、配置和管理提供了便捷的途径。本文对AT命令的概念、起源、基本结构、应用领域、执行与响应、扩展以及未来发展进行了深入的探讨和介绍。
通过了解AT命令的基本原理和用法开发者可以在实际应用中灵活地使用AT命令从而实现各种通信需求。不论是通过标准的AT命令还是厂商自定义的扩展命令都能够为开发者提供强大的工具来控制和管理设备。当然在使用AT命令时也需要注意安全性和注意事项以确保设备和通信的稳定和安全。
13. 参考资料
AT Command Set for GSM Mobile EquipmentAT CommandsAT Commands for GSM ModemsAT Commands in 3GPPIntroduction to AT CommandsAT Commands in IoTAT Command TesterAT命令介绍
通过参考以上资料读者可以进一步深入了解AT命令在通信领域的应用和技术细节。无论是开发调制解调器、移动通信设备还是物联网设备AT命令都是不可或缺的工具之一。希望本文能够为读者提供关于AT命令的全面了解并在实际开发中得到有益的应用。