mux

golang:模拟http post请求

风格不统一 提交于 2020-08-16 05:59:45
  1,发送http post请求(客户端) func httppost() { data :=`{"type":"10","msg":"hello."}` request, _ := http.NewRequest("POST", "http://0.0.0.0:8090/msg", strings.NewReader(data)) //post数据并接收http响应 resp,err :=http.DefaultClient.Do(request) if err!=nil{ fmt.Printf("post data error:%v\n",err) }else { fmt.Println("post a data successful.") respBody,_ :=ioutil.ReadAll(resp.Body) fmt.Printf("response data:%v\n",string(respBody)) } }   2,接收方法(服务端) package main import ( "net/http" "io/ioutil" "fmt" ) func main() { //设置路由和接收HTTP请求的方法 mux :=http.NewServeMux() mux.HandleFunc("/msg",recvHandle) //设置http服务 server :=

基于FPGA的RGB图像转灰度图像算法实现

前提是你 提交于 2020-08-16 05:22:04
一、前言   最近学习牟新刚编著《基于FPGA的数字图像处理原理及应用》的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现。                                                                              2020-02-29 10:38:40 二、RGB图像转灰度图像算法原理   将彩色图像转换为灰度图像的方法有两种,一个是令RGB三个分量的数值相等。输出后便可以得到灰度图像,另一种是转换为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图 像的亮度和浓度, 所以只输出Y分量,得到图像就是灰度图像 。   YCbCr是通过有序的三元组来表示的,三元由Y(Luminance)、Cb(Chrominace-Blue)和Cr(Chrominace-Red)组成,其中Y表示颜色的明亮度和浓度,而Cb和Cr则分别表示颜色的蓝色浓度 偏移量和红色浓度偏移量。人的肉眼对由YCbCr色彩空间编码的视频中Y分量更敏感,而Cb和Cr的微小变换不会引起视觉上的不同。根据该原理,通过对Cb和Cr进行子采样来减小图像的数据量。使得 图像对存储需求和传输带宽的要求大大降低,从而达到完成图像压缩的同时,也保证了视觉上几乎没有损失的效果

Docker的iptables规则在iptables重启后丢失

给你一囗甜甜゛ 提交于 2020-08-15 04:49:03
前因后果 1、在跳板机上使用ansible命令测试机器B时,报错如下,于是就怀疑是网络防火墙的问题 10.10 . 0.86 | FAILED >> { " failed " : true , " msg " : " /bin/sh: /usr/bin/python: No such file or directory\r\nOpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug1: mux_client_request_session: master session id: 2\r\nShared connection to 10.10.0.86 closed.\r\n " , " parsed " : false } 2、登录到机器B上,这是一台线上的机器,里面运行docker容器,然后我看平时的经验一般是网络防火墙有问题就直接 iptables - F systemctl

Qt音视频开发3-vlc录像存储

ぃ、小莉子 提交于 2020-08-14 13:44:49
一、前言 录像功能是视频监控系统的常用功能,就是将打开的视频流或者视频文件重新保存成MP4文件,当然也可以保存成其他格式,一般默认用MP4比较好,比较标准一些,MP4格式的兼容性最好,基本上没有说那台电脑不能播放MP4文件,所以就保存成这种最常用的视频文件格式就好了。 vlc的录像功能是内置封装好的,在打开文件的前面设置相应的命令参数即可,如果只是要求整个过程保存成一个视频文件,这个很好办,网上方法一大堆,只要调用libvlc_media_add_option函数设置:sout=#duplicate{dst=file{dst=d:/1.mp4},dst=display}即可,最开始用的是:sout=#stream_out_duplicate{dst=display,dst=std{access=file,mux=%1,dst=%2}}参数,后面换成vlc3以后发现不支持了,查阅相关资料后发现要用duplicate,可能vlc3开始不支持stream_out_duplicate只支持duplicate吧。 保存成单个视频文件,这个没有任何问题和难度,但是视频监控领域中经常需要的是定时保存成单个文件,比如30分钟一个视频文件,这样方便检索,而且也不会看起来一个视频文件很大很大,毕竟视频监控是7*24小时运行的,那这个文件不知道多大,vlc要动态保存多个文件,这就需要模拟执行录像

使用迅为IMX6ULL开发板第一个汇编实验(一)

六眼飞鱼酱① 提交于 2020-08-13 13:36:06
通过第五章我们对 ARM 汇编语法有了初步的认识,在本章我们开始使用会念编写我们的第一个汇编实 验,在开发版的额众多外设里面,原理最简单,最适合初学者入门的就是 gpio 的驱动,在我们的开发板上 板载了一个 led 发光 二极管 ,他的实现原理就是通过 gpio 来控制 led 的亮灭(控制 gpio 输出高低电平)。 9 91 .1 i.MX6ULL GPIO 分析 分析 i.MX6 ULL 终结者开发板使用的 cpu 是 I.MX6ULL,该 cpu 的参考手册我们放到了光盘目录的“i.MX6UL 终结 者光盘资料\03_开发板硬件资料\02_芯片资料\1、I.MX6ULL 芯片资料.zip ”压缩包里面,如下图所示: 1.jpg 打开该手册的 32 章节“Chapter 32 IOMUX Controller (IOMUXC)”,我们看到 32 章节的目录如下图所示: 2.jpg 图中的“IOMUXC_SW_MUC_CTL_PAD_GPIO1_IO00”就是 GPIO 的命名。其命名格式是 “IOMUXC_SW_MUC_CTL_PAD_XX_XX”,其中的 XX_XX 就是 GPIO 的命名。例如:JTAG_MOD,GPIO1_IO00, UART4_TX_DATA 等。I.MX6ULL 的 GPIO 命名是根据 IO 所拥有的功能来命名的,比如我们看到 GPIO1

clock gating | clock gating的timing check

随声附和 提交于 2020-08-13 13:02:54
定义: clock gating check是约束的一种,可以用户显示设置,也可由工具推断,目的是保证穿过clock gating cell的clock 没有glitch 且波形不被削切。下面是一个【反例】左侧clock波形被削切,右侧有glitch 穿过。由clock gating的结构可知,大部分clock gating check 都可以归类到AND type clock gating check 或 OR type clock gating check.另类的由XOR跟MUX。 AND type clock gating check: 即高电平有效clock gating check, 当enable 信号为"1" 时,门控打开,clock 『流过』gating cell. 当enable 信号为"0" 时,门控关闭,任由输入clock 呼天喊地,输出都是一片死寂。 对于AND type clock gating cell, enable 信号必须在clock 为低时翻转,才能保证输出clock 没有glitch 且波形不被削切。 理论上讲,enable 信号即可来自上沿触发的寄存器也可来自下沿触发的寄存器,但如果是来自上沿触发的寄存器,那么hold 将会是半cycle check, 会比较难meet. 而如果enable 信号来自下沿触发的寄存器,那么hold 是0

使用迅为IMX6ULL开发板第一个汇编实验(二)

∥☆過路亽.° 提交于 2020-08-13 02:46:35
94 .4 GPIO 时钟 时钟 如果使用 GPIO,我们必须要使能 GPIO 的时钟。i.MX6 ULL 的每个外设的时钟可以独立的使能,我们可以关闭不使用的外设时钟,可以达到节能的目的。如果使用某个外设,我们必须要打开对应的时钟。《I.MX6ULL 参考手册》的第 18 章“Clock Controller Module (CCM)”是关于 i.MX6ULL 时钟的讲解,我们可以看下该章节里面外设时钟的使能寄存器。跟外设时钟使能相关的寄存器有: CCM_CCGR0 CCM_CCGR1 CCM_CCGR2 CCM_CCGR3 CCM_CCGR4 CCM_CCGR5 CCM_CCGR6 一共 7 个。我们来看下 CCM_CCGR0 寄存器如何使能一个外设时钟,改寄存器的描述如下图所示: 我们从上图可以看到 CCM_CCGR0 寄存器是 32 位的,每 2 位控制一个外设时钟,比如 bit1:bit0 控制aips_tz1 的时钟,两位的操作方式如下: 00 //所有模式下都关闭外设时钟 01 //只有在运行模式下打开外设时钟 10 //保留 11 //除了停止模式以外,其他所有模式下时钟都打开 如果我们要打开 aips_tz1 的外设时钟,需要设置 CCM_CCGR0 的 bit1 和 bit0 都为 1,也就是 CCM_CCGR0=3,如果关闭 aips_tz1 的外设时钟

Go WEB入门

谁说我不能喝 提交于 2020-08-12 02:12:23
摘要 由于Golang优秀的并发处理,很多公司使用Golang编写微服务。对于Golang来说,只需要短短几行代码就可以实现一个简单的Http服务器。加上Golang的协程,这个服务器可以拥有极高的性能。然而,正是因为代码过于简单,我们才应该去研究他的底层实现,做到会用,也知道为什么这么用。 在本文中,会以自顶向下的方式,从如何使用,到如何实现,一点点的分析Golang中net/http这个包中关于Http服务器的实现方式。内容可能会越来越难理解,作者会尽量把这些源码讲的更清楚一些,希望对各位有所帮助。 1 创建 首先,我们以怎么用为起点。 毕竟,知道了怎么用,才能一步一步的深入挖掘为什么这么用。 先来看第一种最简单的创建方式(省略了导包): func helloWorldHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World !") } func main() { http.HandleFunc("/", helloWorldHandler) http.ListenAndServe(":8000", nil) } 其实在这一部分中,代码应该很容易理解。就是先做一个映射,把需要访问的地址,和访问后执行的函数,写在一起。然后再加上监听的端口,就可以了。 如果你是一个Java程序员

SRAM的性能及结构

柔情痞子 提交于 2020-08-08 14:30:09
SRAM它也由晶体管组成。接通代表1,断开表示0,并且状态会保持到接收了一个改变信号为止。这些晶体管不需要刷新,但停机或断电时,它们同DRAM一样,会丢掉信息。SRAM的速度非常快,通常能以20ns或更快的速度工作。静态 ram 中所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。SRAM不需要刷新电路即能保存它内部存储的数据。因此SRAM具有较高的性能, SoC随着工艺进步设计复杂度增加,embeded sram也越来越多。在40nm SoC产品Sram一般在20Mbits左右,当工艺发展到28nm时Sram就增加到100Mbits。如果考虑AI产品,Sram估计更多。如何更好的测试Sram就成为量产测试的重中之重。 SRAM 的性能 ·memory compiler的选择 对于一个memory size大小确定的memory block,Column Mux越大,Row address位宽越小: - memory读写的访问速度就高 (row译码选择快) - memory的面积大(cell和cell的横向距离大于纵向距离,column mux增加很增加bits per wordline--横向,减少wordline数--纵向,横向尺寸增加远大于纵向) - 因为一次选择的row地址对应的cell多,功耗也会增加 电流功耗 总电流功耗包括dynamic