0%

MTK的芯片设计有些让人搞不懂,非得将串口作为启动选择引脚;

MT76x8 参考其datesheet,TXD0 启动时必须为低电平,TXD1启动时必须保持高电平;

一共最多3个串口,唯独UART2不影响启动;但是UART2与 NET PORT2是复用的;使用uart2必须牺牲1个网口;

准确来说是牺牲所有网口(PORT0除外),因此MT76x8 要么作为单网口使用要么作为5网口使用,没有中间模式;这一点也比较蛋疼;

但这不是我们今天要关心的;今天只谈uart2作为启动串口;

阅读全文 »

openwrt版本为15.05.1,以mt7620为例,其他类似。

1.wifi的默认开启方式、ssid、加密方式等配置

1
`package``/kernel/mac80211/files/lib/wifi/mac80211``.sh`

2.硬件资源的配置(usb、gpio、flash等),即dts

1
`target``/linux/ramips/dts/``下文件`

3.镜像生成方式控制

1
`target``/linux/ramips/image/Makefile`
阅读全文 »

1、TCP/IP协议组

TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。

  • IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。
  • TCP层负责面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象。

TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:

  • 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;
  • 传输层:TCP协议与UDP协议;
  • 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议;
阅读全文 »

在openwrt开发过程中需要数据的发送和接受,此时传输数据的格式就有很多种了,今天简单介绍一下openwrt系统中JSON数据的处理方法

假设有一个JSON文件

1
2
3
4
5
6
7
8
9
10
11
12
cat /etc/ss.json
{
"server": "8.8.8.8",
"server_port": 443,
"local_address": "0.0.0.0",
"local_port": 7070,
"password": "fuckgfang",
"method": "aes_128_ctr",
"timeout": "60",
"protocol": "auth_aes128_sha1",
"fast_open": false
}

阅读全文 »

openwrt交叉编译生成应用,openwrt已经编译好了,现在编译一个单独的部件安装到树莓派或者路由上。

首先我们在openwrt/package/下建立helloworld文件夹

然后在helloworld文件夹下创建src文件夹

在src文件夹中,我们创建helloworld.c文件和Makefile文件

阅读全文 »

C#中SaveFileDialog 和OpenFileDialog 的用法
本文通过几个示例来说明SaveFileDialog 和OpenFileDialog 的用法
1.OpenFileDialog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"C:\Users\LWP1398\Desktop"; //设置初始路径
ofd.Filter = "Excel文件(*.xls)|*.xls|Csv文件(*.csv)|*.csv|所有文件(*.*)|*.*"; //设置“另存为文件类型”或“文件类型”框中出现的选择内容
ofd.FilterIndex = 2; //设置默认显示文件类型为Csv文件(*.csv)|*.csv
ofd.Title = "打开文件"; //获取或设置文件对话框标题
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
//FileName:所选文件的全路径 SafeFileName:所选的文件名
txtPath.Text = "FileName:" + ofd.FileName + "\r\n" + "SafeFileName:" + ofd.SafeFileName;
}
}
阅读全文 »

1.查进程
​ ps命令查找与进程相关的PID号:
​ ps a 显示现行终端机下的所有程序,包括其他用户的程序。
​ ps -A 显示所有程序。
​ ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
​ ps -e 此参数的效果和指定”A”参数相同。
​ ps e 列出程序时,显示每个程序所使用的环境变量。
​ ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
​ ps -H 显示树状结构,表示程序间的相互关系。
​ ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
​ ps s 采用程序信号的格式显示程序状况。
​ ps S 列出程序时,包括已中断的子程序资料。
​ ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
​ ps u 以用户为主的格式来显示程序状况。
​ ps x 显示所有程序,不以终端机来区分。

最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
阅读全文 »

dlib的安装教程

1.下载cmake

1
pip install cmake

2.下载scikit-image

1
pip install scikit-image

3.下载dlib(现在的新版本不需要Boost)

1
pip install dlib

也可以使用源码安装,这种方法出错率比较低

注:在安装时可能会出现这种情况,等待过一会就好了,如果不好使就换一个版本试试

img

多等一会一般都能成功。

之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱、url等信息)

configparser模块

python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件

在使用前需要先安装该模块,使用pip安装即可

configparser读取文件的基本方法

(1)新建一个config.ini文件,如下

阅读全文 »