Linxzl 2017-04-07 02:39 采纳率: 0%
浏览 736

华为E3372ARM移植,ttyUSB转换

内核是3.0.8,按照手册我就只能转换成ttyUSB0。但是可以通过udhcpc -n -i eth1获取到ip,并且能够成功上网。没有转换成ttyUSB0,ttyUSB1,ttyUSB2。我需要通过AT命令发送短信获取电话资费和信号强度。各位大神看看

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 16:48
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使用AT命令从ttyUSB设备发送短信,您需要在Linux内核中添加支持。以下是将ttyUSB设备配置为可访问的步骤:

    1. 添加ttyUSB设备驱动:在/etc/modules文件中添加以下行:
    ttyUSB=y
    

    这表示ttyUSB设备已启用。

    1. 在Linux内核中添加ttyUSB驱动:打开内核源码目录下的drivers/tty/ttyusb.c文件,找到tty_usb_open()函数并将其注释掉(如果已经存在),然后添加以下代码:
    static int tty_usb_open(struct file *file, const char *cmd)
    {
        return 0;
    }
    

    这将阻止ttyUSB设备被读取或写入。

    1. 在Linux内核中添加ttyUSB通信协议:在drivers/tty/ttyusb.c文件中添加以下代码来实现TTY USB通信:
    int tty_usb_open(struct file *file, const char *cmd)
    {
        // 其他逻辑...
        if (strcmp(cmd, "sms") == 0) {
            struct tty_usb_sms_request req;
            memset(&req, 0, sizeof(req));
            
            // 发送短信请求
            int sms_status = send_sms(&req);
            
            // 结果处理...
        }
        
        return 0;
    }
    
    1. 将以上代码添加到内核源码中,并编译内核。

    2. 在您的应用程序中调用send_sms()函数以向ttyUSB发送短信。例如,在Python中,您可以这样做:

    import ttyUSB
    
    # 假设ttyUSB设备的端口为'/dev/ttyUSB0'
    device = ttyUSB.TTYUSB('/dev/ttyUSB0')
    
    # 发送短信请求
    response = device.send_sms("SMS_TEXT", 'SMS_PASSWORD', 'SMS_DESTINATION')
    
    # 处理响应
    if response:
        print('短信发送成功')
    else:
        print('短信发送失败')
    

    请注意,此代码仅适用于具有特定功能的TTY USB设备。在实际应用中,您可能需要根据设备的具体需求进行调整。此外,为了确保安全,您还应该考虑如何保护发送的敏感信息,例如密码和电话号码。

    评论

报告相同问题?