当前位置: 首页 > news >正文

ppppp2-23

#!/bin/sh
USBFILE=/etc/ppp/usbdevices
LIST=/etc/ppp/diallist

function ec25_find_ttyname()
{
DEVNAME=$1
FLAG=0
USB_FIND_PATH=/sys/bus/usb/devices
for dir in $(ls $USB_FIND_PATH)
do
echo $(ls USBFINDPATH/USB_FIND_PATH/USBFINDPATH/dir) | grep ttyUSB > /dev/null 2>&1
if [ $? -eq 0 ];then #最后运行的命令的结束代码(返回值)
USBDEVID=echo $dir|awk -F"." '{print $1}'
FLAG=1
break;
fi
done
if [ FLAG−eq0];thenlogger"CannotfindttyUSBdevice."exit2fiUSBFINDPATH=/sys/bus/usb/devices/FLAG -eq 0 ]; then logger "Can not find ttyUSB device." exit 2 fi USB_FIND_PATH=/sys/bus/usb/devices/FLAGeq0];thenlogger"CannotfindttyUSBdevice."exit2fiUSBFINDPATH=/sys/bus/usb/devices/USBDEVID.$DEVNAME
for filename in $(ls $USB_FIND_PATH)
do
echo $filename | grep tty > /dev/null 2>&1
if [ ?−eq0];thenecho/dev/? -eq 0 ];then echo /dev/?eq0];thenecho/dev/filename
break
fi
done
}

function me909_find_ttyname()
{
DEVNAME=$1
USB_FIND_PATH=/sys/bus/usb/drivers/option
for dir in $(ls $USB_FIND_PATH)
do
bIfP=cat $USB_FIND_PATH/$dir/bInterfaceProtocol
if [ $bIfP = 01 ] || [ $bIfP = 10 ];then
for mname in $(ls USBFINDPATH/USB_FIND_PATH/USBFINDPATH/dir)
do
echo $mname | grep ttyUSB > /dev/null 2>&1
if [ $? -eq 0 ];then
if [ DEVNAME=modem];thenecho/dev/DEVNAME = modem ];then echo /dev/DEVNAME=modem];thenecho/dev/mname
break 2
fi
fi
done
elif [ $bIfP = 02 ] || [ $bIfP = 12 ];then
for pname in $(ls USBFINDPATH/USB_FIND_PATH/USBFINDPATH/dir)
do
echo $pname | grep ttyUSB > /dev/null 2>&1
if [ $? -eq 0 ];then
if [ DEVNAME=pcui];thenecho/dev/DEVNAME = pcui ];then echo /dev/DEVNAME=pcui];thenecho/dev/pname
break 2
fi
fi
done
fi
done
}

lsusb > $USBFILE
chmod 644 $USBFILE
#Create The Symbol Link from TTYUSB*
if [ ! -f $LIST ];then
logger “diallist is not exist!”
return 1
fi
while read line
do
USBID=echo $line|awk -F" " '{print $6}' #截取显示行的第六列
VID=echo $USBID|awk -F":" '{print $1}'
PID=echo $USBID|awk -F":" '{print $2}'
grep $VID $LIST|grep $PID > /dev/null 2>&1
if [ $? -eq 0 ];then
if [ $VID = 2c7c ] && [ $PID = 0125 ];then
echo Quectel EC20 found.
PORT_M=ec25_find_ttyname 3
PORT_A=ec25_find_ttyname 2
PORT_G=NULL
SCRIPT1=grep $VID $LIST|grep $PID|awk -F" " '{print $6}'
SCRIPT2=grep $VID $LIST|grep $PID|awk -F" " '{print $7}'
break
elif [ $VID = 2c7c ] && [ $PID = 6026 ];then
echo Quectel EC200T found.
PORT_M=ec25_find_ttyname 4
PORT_A=ec25_find_ttyname 3
PORT_G=NULL
SCRIPT1=grep $VID $LIST|grep $PID|awk -F" " '{print $6}'
SCRIPT2=grep $VID $LIST|grep $PID|awk -F" " '{print $7}'
break
elif [ $VID = 12d1 ] && [ $PID = 15c1 ];then
echo HUAWEI ME909 found.
PORT_M=me909_find_ttyname modem
PORT_A=me909_find_ttyname pcui
PORT_G=NULL
SCRIPT1=grep $VID $LIST|grep $PID|awk -F" " '{print $6}'
SCRIPT2=grep $VID $LIST|grep $PID|awk -F" " '{print $7}'
break
else
PORT_M=grep $VID $LIST|grep $PID|awk -F" " '{print $3}'
PORT_A=grep $VID $LIST|grep $PID|awk -F" " '{print $4}'
PORT_G=grep $VID $LIST|grep $PID|awk -F" " '{print $5}'
SCRIPT1=grep $VID $LIST|grep $PID|awk -F" " '{print $6}'
SCRIPT2=grep $VID $LIST|grep $PID|awk -F" " '{print $7}'
fi
#echo $PORT_M $PORT_A $PORT_G $SCRIPT1 $SCRIPT2
break
fi
done < USBFILEif[""="USBFILE if [ "" = "USBFILEif[""="PORT_M" ] || [ “” = “PORTA"]∣∣[""="PORT_A" ] || [ "" = "PORTA"]∣∣[""="PORT_G” ];then
logger “USB Dongle is not found! Use 3G/4G Board.”
rm -rf /dev/ttyUSB0_modem
rm -rf /dev/ttyUSB1_pcui
rm -rf /dev/ttyUSB2_gps
PPP_DEVICE=/dev/tty4ppp
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
else
logger “USB Dongle is found!”
ln -sf $PORT_M /dev/ttyUSB0_modem
ln -sf PORTA/dev/ttyUSB1pcuiif["NULL"!="PORT_A /dev/ttyUSB1_pcui if [ "NULL" != "PORTA/dev/ttyUSB1pcuiif["NULL"!="PORT_G" ];then
ln -sf $PORT_G /dev/ttyUSB2_gps
fi
if [ “#777” = "1"];thenDIALERSCRIPT=1" ];then DIALER_SCRIPT=1"];thenDIALERSCRIPT=SCRIPT2
else
DIALER_SCRIPT=$SCRIPT1
fi
PPP_DEVICE=/dev/ttyUSB0_modem
fi

#Parameter Initialize
if [ $# -eq 0 ];then
TELEPHONE=*99#
ACCESSPOINT=“CMNET”
else
TELEPHONE=$1
ACCESSPOINT=$2
ACCOUNT=$3 # The account name for logon (as in ‘George Burns’)
if [ $# -eq 4 ];then # $#是添加到Shell的参数个数
PASSWORD=$4 # The password for this account (and ‘Gracie Allen’)
else
read -s PASSWORD # read -s 选项能够使read命令中输入的数据不显示在监视器上
fi #else 语句结尾
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
fi
if [ -z $ACCOUNT ];then #-z长度为0
ACCOUNT=anonymous
fi
if [ -z $PASSWORD ];then
PASSWORD=anonymous
fi

PPP_BAUDE=115200
export TELEPHONE ACCOUNT PASSWORD ACCESSPOINT PPP_BAUDE

Initiate the connection

if [ -f /usr/sbin/pppd ] && [ -f /usr/sbin/pppctrl ] && [ -f /usr/local/lib/pppd/passwordfd.so ];then
/usr/sbin/pppctrl -d $PPP_DEVICE -s $DIALER_SCRIPT -n $ACCOUNT -p $PASSWORD
else
exec pppd $PPP_DEVICE $PPP_BAUDE nocrtscts
defaultroute connect $DIALER_SCRIPT
user $ACCOUNT password $PASSWORD name $ACCOUNT remotename dialout debug noipdefault usepeerdns nopersist
fi

相关文章:

ppppp2-23

#!/bin/sh USBFILE/etc/ppp/usbdevices LIST/etc/ppp/diallist function ec25_find_ttyname() { DEVNAME$1 FLAG0 USB_FIND_PATH/sys/bus/usb/devices for dir in $(ls $USB_FIND_PATH) do echo $(ls USBFINDPATH/USB_FIND_PATH/USBF​INDP​ATH/dir) | grep ttyUSB > /dev…...

【GeoDjango框架解析——读取矢量数据写入postgis数据库】

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 geodjango框架解析之读取矢量数据shp文件写入postgis数据库 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录…...

注意啦!如何通过广告吸引客户直接下单?

2023年跨境电商越来越突出&#xff0c;据业内相关人士称&#xff0c;在未来几年与跨境电商相关的政策仍会继续倾斜甚至加大力度&#xff0c;因此各行各业都响应政策&#xff0c;在新政策落实之前致力于平台的转型升级&#xff0c;做新时代创新型的高质量发展&#xff0c;其实细…...

ThinkPHP ^6图片操作进阶

图片裁剪、缩略、水印不再是TP框架系统内置的功能&#xff0c;需要安装。 目录 安装 图片处理 1.创建图片对象 2.获取图片属性 3.裁剪图像 4.生成缩略图 6.保存图像 7.水印 安装 使用composer在项目根目录打开命令行执行&#xff1a; composer require topthink/think…...

深入理解JS作用域链与执行上下文

变量提升&#xff1a; 变量提升&#xff08; hoisting &#xff09;。 我可恨的 var 关键字&#xff1a; 你读完下面内容就会明白标题的含义&#xff0c;先来一段超级简单的代码&#xff1a; <script type"text/javascript">var str Hello JavaScript hoi…...

UnityEditor编辑器扩展代码实现Project搜索的实现功能和切换Component等

反射实现切换Gameobjecect-Comp之前介绍过Kinematic Character Controller这个插件这个插件很容易和另外一个插件混淆&#xff0c;两个作者头像比较相像&#xff0c;而且这个插件的作者不太喜欢露脸&#xff08;他现在做Dot-CharacterControl去了&#xff09;&#xff0c;几乎网…...

SKAdNetwork:从0到1

一、什么是SKAdNetwork https://developer.apple.com/documentation/storekit/skadnetwork iOS14.5开始&#xff0c;获取IDFA需要用户确认授权才可&#xff0c;此时SKAdNetwork 正式回归。 SKAdNetwork 是苹果在2018年推出的一个更加保护用户隐私的归因框架&#xff0c;并与…...

Spring+MVC+MYbatis注解开发

Spring常见注解 注解一&#xff1a;Configuration 用在类上面&#xff0c;加上这个注解的类可以成为一个spring的xml配置文件&#xff0c;使用的是java代码的配置 注解二&#xff1a;ComponentScan 用在类上&#xff0c;加上注解可以指定扫描路径 注解三&#xff1a;创建对…...

Redis主从复制过程

将目前服务器加入到端口号为6379的从服务器 一主二仆 当期中一台从服务器宕机之后 从服务器重启之后会变成单独的主服务器&#xff0c;与之前的主从复制没有关系&#xff0c;重新使用slaceof命令才能恢复到之前一样 主服务器宕机后&#xff0c;从服务器不会成为主服务器&…...

Spring boot开启定时任务的三种方式(内含源代码+sql文件)

Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09; 源代码sql文件下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87486580 目录Spring boot开启定时任务的三种方式&#xff08;内含源代码sql文件&#xff09;源代码…...

Tekton实战案例--S2I

案例环境说明 示例项目&#xff1a; 代码仓库&#xff1a;https://gitee.com/mageedu/spring-boot-helloWorld.git 构建工具maven pipeline各Task git-clone&#xff1a;克隆项目的源代码 build-to-package: 代码测试&#xff0c;构建和打包 generate-build-id&#xff1a;生…...

四、使用类实现功能

使用类实现功能 ts中类的继承 ES6中class类中&#xff0c;属性分为&#xff1a;实例上的属性&#xff0c;原型上的方法&#xff1b;也可以叫做&#xff1a;class的属性&#xff0c;class的方法。 类的继承叫法&#xff1a;父类>子类&#xff0c;基类>派生类&#xff1b…...

Java多线程不安全的例子

目录 1. 可见性不安全例子 2. 原子性不安全例子 3. 有序性不安全例子 1. 可见性不安全例子 可见性&#xff1a;一个线程对共享变量的修改&#xff0c;另外一个线程不能够立刻看到。 如果多线程对共享数据进行访问而不采取同步操作的话&#xff0c;那么操作的结果是不一致…...

vivo X Flip会是高端手机市场的又一折叠屏爆款吗?

据多个平台消息&#xff0c;vivo即将推出小折叠屏手机X Flip。据了解&#xff0c;vivo X Flip将采用轻盈便携的竖向折叠布局&#xff0c;以及非常受女性消费者喜爱的结构设计。那么&#xff0c;vivo X Flip会是vivo折叠屏的又一个爆款吗&#xff1f; 一、vivo X Flip小折叠屏手…...

MySQL中MVCC如何解决不可重复读以及幻读?

了解MVCC之前&#xff0c;我们首先需要了解以下两个概念&#xff1a;一致性非锁定读和锁定读&#xff0c;了解这两个概念之后我们在逐步分析MVCC。 一致性非锁定读和锁定读 一致性非锁定读(快照读) 对于 一致性非锁定读的实现&#xff0c;通常做法是加一个版本号或者时间戳字…...

设计模式第八讲:观察者模式和中介者模式详解

一. 观察者模式 1. 背景 在现实世界中&#xff0c;许多对象并不是独立存在的&#xff0c;其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如&#xff0c;某种商品的物价上涨时会导致部分商家高兴&#xff0c;而消费者伤心&#xff1b;还有&…...

关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)

关于 mac 本地配置域名能 ping 通&#xff0c;但是浏览器不能访问的问题&#xff08;而其他电脑操作可访问&#xff09;1. 配置域名的方式1.1 sudo vim /etc/hosts1.2 浏览器插件 LiveHosts2. 问题描述3. 解决问题方法3.1 尝试方法1—确保代理都关闭3.2 尝试方法2—确保域名能p…...

【代码随想录二刷】Day23-二叉树-C++

代码随想录二刷Day23 今日任务 669.修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 语言&#xff1a;C 669. 修剪二叉搜索树 链接&#xff1a;https://leetcode.cn/problems/trim-a-binary-search-tree/ 递归 class Solution { public:Tree…...

Linux GPIO 开发指南

文章目录Linux GPIO 开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员2 模块介绍2.1 模块功能介绍2.2 相关术语介绍2.3 总体框架2.4 state/pinmux/pinconfig2.5 源码结构介绍3 模块配置3.1 kernel menuconfig 配置3.2 device tree 源码结构和路径3.2.1 device tree 对 gpio…...

记一次后端生成Zip文件通过浏览器下载后文件损坏,无法打开,不可预知的末端错误,下载后文件比源文件增大

记一次后端生成Zip文件问题前言问题出现排查一、流没有关好二、写入了空白字节三、没有flush定位环节一、生成二、通过SwaggerUI、PostMan进行下载三、结论解决方法前言 在项目上线前夕&#xff0c;临时添加了个数据导出的接口&#xff0c;需求是导出压缩包&#xff0c;选择了项…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...