关于H.248的树图规则

2023-10-26

 

一、H248数图

数图可以是一个字符串,我们不妨称之为数图字符串,它遵循了Unix系统命令中的规则表达式的语法规定,也可以是许多数图字符串的并集,之间用“|”分隔,我们不妨称之为数图字符串列表。以下是一个数图的例子: 

[2-8]xxxxxxx | 13xxxxxxxxx | 0xxxxxxxxx | 9xxxx | 1[0124-9]x | * | # | x.# | [0-9*#].T 

我们结合对该数图的分析,学习一下怎样读懂一个数图。首先,我们对一个数图字符串中可能出现的字符进行一下归纳。 

第一类:数字:0、1、2、3、4、5、6、7、8、9; 

第二类:定时器:数图中用大写的“T”匹配一个定时器的超时,称之为超时匹配,定时器的时长是由媒体网关主机软件自己控制的,一般是要比位间不拨号超时定时器短; 

第三类:字符:包括A、B、C、D、*、#,还包括定时器“T”,如果有其它的扩展字符,象我们前文所说的一些广义上的号码字符,也属于该类; 

第四类:通配符:x,匹配从0到9的任何一个数字; 

第五类:范围:数图中用一对中括号“[”、“]”括起一个或多个DTMF字符表示选择范围,在该范围中出现的任何一个DTMF都可以匹配; 

第六类:子范围:数图中用两个数字间通过一个连字号“-”相连表示一个范围,比如“2-4”表示匹配从2到4之间的任何一个数字,包括2和4。之所以称之为子范围,是因为这个结构只能出现在方括号中。比如“[1-578]”表示从1到5,或7、8任何一个匹配,排除了6; 

第七类:位置:小圆点“.”是一种位置匹配,它对在它之前出现的任何一个结构进行0次或多次匹配,注意它的匹配次数包括零次。比如“12.”匹配“1”、“12”、“122”、“1222”、„„。 

 

现在我们再对上文给出的数图进行分析: 

[2-8]xxxxxxx | 13xxxxxxxxx | 0xxxxxxxxx | 9xxxx | 1[0124-9]x | * | # | x.# | [0-9*#].T   

这是一个由9个数图字符串组成的数图字符串列表: 

 

第一个数图字符串“[2-8]xxxxxxx”匹配一个八位号码,第一位必须是数字2~8中的一位,其余七位号码可以是0~9中的任何一位; 

第二个数图字符串是“13xxxxxxxxx”,匹配一串11位号码,第一位必须匹配1,第二位必须匹配3,其余9位匹配0~9; 

第三个数图字符串是“0xxxxxxxxx”,匹配以0起始的10位号码; 

第四个数图字符串是“9xxxx”,匹配以9起始的5位号码; 

第五个数图字符串是1[0124-9]x,匹配三位号码,第一位必须匹配1,第二位匹配012中的任何一位或4~9中任何一位,也就是说只要第二位是除3之外的任何数字,都能匹配成功,第三位匹配0~9的任何数字; 

第六个数图字符串匹配DTMF字符“*”; 

第七个数图字符串匹配DTMF字符“#”; 

第八个数图字符串“x.#”,x后面加一点,表示对0~9中任何一位进行零次或多次匹配,除非遇到“#”,停止匹配; 

第九个数图字符串“[0-9*#].T”,T表示启动超时匹配,对0~9或“*”号或“#”号进行一次次或多次匹配,如果匹配定时器超时,停止匹配。

 

这里需要说明的是,本来小圆点表示的是零次或多次匹配,但这个数图子串比较特殊,由于至少输入一个字符才可能进入该子串,从而触发匹配定时器的启动,因此此处需要至少匹配一次0~9或*、#。 

 

我们已经知道怎样读懂一个数图了。但是用户号码毕竟是一位一位上报给媒体网关的,媒体网关怎样对每一位号码处理,最后统一上报呼叫代理?当号码同时符合数图中多个数图字符串匹配时,媒体网关以哪一个为准呢?这是本节讨论的问题。 

 

由于用户号码是逐位上报给媒体网关的,而媒体网关想要将号码收齐后统一上报给呼叫代理,必然需要将之前上报的号码先进行缓存。用户每上报一位号码,媒体网关将该号码添加到一个叫做“当前拨号串”的状态变量后面,替换掉原来的变量值,然后将该变量值交给数图进行分析。 


对数图的分析顺序是从左到右的,每分析一个数图字符串,给出一个匹配结果,匹配的结果可能有四种: 

完全匹配,即完全符合该数图字符串的匹配要求; 

超时匹配,即符合某个超时匹配的数图字符串; 

部分匹配,即部分匹配某个数图字符串; 

不匹配,即不匹配某个数图字符串。 

 

这四种匹配结果优先级由高到低依次为完全匹配、超时匹配、部分匹配、不匹配。优先级体现在当对数图从左到右先后匹配时,每个数图字符串都有一个匹配结果,优先级高的结果替换优先级低的结果,当所有数图字符串匹配结束后,给出一个最终的结果。

 

最终匹配结果如果是完全匹配,号码立即上报呼叫代理;如果是超时匹配,匹配定时器超时后号码上报呼叫代理;如果是部分匹配,号码缓存到“当前拨号串”状态变量中,等待用户下一位号码上报后再进行新一轮匹配;如果是不匹配,号码立即丢弃。如此循环,完成用户号码分析上报过程。 

 

下面结合两个数图实例理解一下媒体网关怎样利用数图对收到的号码进行号码分析。 

 

实例一:

(xxxxxxx | x11) 

当前媒体网关号码缓存中已有的号码是“41”,用户又拨入一个“1”,则,号码缓存中变成了“411”,先比较数图子集“xxxxxxx”,匹配结果应该是部分匹配,再比较数图子集“x11”,匹配结果应该是完全匹配,于是网关就会将本次匹配结果作为完全匹配,把“411”发送给呼叫代理。

 

实例二:

(0[12]. | 00 | 1[12].1 | 2x.#)   

用户输入“0”,立即产生一个完全匹配,因为第一个数图子集是“0[12].”,小圆点表示1、2出现零次或多次,本次匹配符合零次的要求,完全匹配。而第二个数图子集“00”虽然对于“0”来说是一个部分匹配,但按照匹配优先级,该匹配不会发生,号码会立即上报给呼叫代理。 

 

用户输入“1”,只有一个部分匹配存在,即第三个数图子集“1[12].1”,输入“12”仍然是一个部分匹配,输入“11”或“121”都是一个完全匹配。 

用户输入“2”,只有一个部分匹配存在,即“2x.#”,用户输入“23”、“234”、“2345”都属于部分匹配,因为该输入的x后有一个小圆点,表示对x进行零次或多次匹配,而x又是一个通配符,0~9任何数字都满足匹配条件。只有“#”出现时,才产生一次完全匹配事件,比如“23456789#”。而用户输入“2#”,也属于一个完全匹配。 


数图由于其灵活性和高效性,在号码分析中起到了很大的作用于实际应用中各种拨号方案千变万化。

 

二、 群内数图和号首集数图

群内数图不用配置,软交换按照群内字冠自动生成群内数图, 以下就是奥太乐的例子,用户摘机后,软交换根据配置群内字冠下发群内的数图。

dmap1{(9|1x|2xxx|3xxx|4xxxxx|5xxx|6xxx|7xxx|8xxx|E|F|x.F|[0-9EF].L)}  

用户拨9后,软交换下发号首集内的数图。

dmap1{([2-8]xxxxxxx|13xxxxxxxxx|15xxxxxxxxx|0xxxxxxxxx|9xxxx|1[0124-9]x|20x|E|F|x.F|[0-9].L)}    
[16:30:17.180]msg from mgc([10.49.0.70]:2944) to mg([10.49.32.90]:2944): !/1 [10.49.0.70]:2944   
T=943221130{C=-{MF=A13{E=939646479{dd/ce{DM=dmap1},al/*},SG{cg/dt},DM=dmap1{(9|1x|2xxx|3xxx|4xxxxx|5xxx|6xxx|7xxx|8xxx|E|F|x.F|[0-9EF].L)}}}}   
[16:30:17.180]msg  from mg([10.49.32.90]:2944) to  mgc([10.49.0.70]:2944): !/1 [10.49.32.90]:2944 P=943221130{C=-{MF=A13}}                                         
[16:30:17.570]msg  from mg([10.49.32.90]:2944) to  mgc([10.49.0.70]:2944): !/1 [10.49.32.90]:2944   
T=708875126{C=-{N=A13{OE=939646479{20090815T16301700:dd/ce{ds="9",meth=FM}}}}}                      
[16:30:17.600]msg from mgc([10.49.0.70]:2944) to mg([10.49.32.90]:2944): !/1 [10.49.0.70]:2944 P=708875126{C=-{N=A13}}                                            
[16:30:17.600]msg from mgc([10.49.0.70]:2944) to mg([10.49.32.90]:2944): !/1 [10.49.0.70]:2944   
T=943221132{C=-{MF=A13{E=939646465{dd/ce{DM=dmap1},al/*},SG{srvtn/rdt},DM=dmap1{([2-8]xxxxxxx|13xxxxxxxxx|15xxxxxxxxx|0xxxxxxxxx|9xxxx|1[0124-9]x|20x|E|F|x.F|[0-9].L)}}}}   
[16:30:17.600]msg  from mg([10.49.32.90]:2944) to  mgc([10.49.0.70]:2944): !/1 [10.49.32.90]:2944 P=943221132{C=-{MF=A13}}   

三、 定时器:(在ONU上设置) 

长定时器(L):若号码串至少还需要一位号码来匹配DigitMap中的任意拨号方案,则数字间的定时器值应设置为长定时器。  

短定时器(S):若号码串至少已经匹配了DigitalMap中的一种拨号方案,但还有可能接收更多数的号码而匹配其它不同的拨号方案,则不应立即报匹配情况,MG必须使用短定时器(S)等待接收更多位数的号码。  

初始定时器(T):初始定时器T用于任何已拨号码之前,即从摘机到收到第一个号码之间的时长。 

举例: 

[2-8]xxxxxxx|13xxxxxxxxx|15xxxxxxxxx|0xxxxxxxxx|9xxxx|1[0124-9]x|20x|E|F|x.F|[0-9].L

拨打020114,或则02010000,都是匹配0xxxxxxxxx的树图,但还没有匹配上,而且也没有其他的可匹配,这时候就要等长定时器超时才能上报。按照一般用户一秒拨一位计算,拨完020114已经花费了6秒,还要等4秒才上报。(假定长定时器为10秒) 

 

拨打200,匹配了两个数图:[2-8]xxxxxx和20x,如果不再拨号,等短定时器超时即可上报。就是说拨完200等待4秒不再拨号才上报,如果200后(4秒内)又拨了其他号码,就不再匹配20x。(假定短定时器为4秒)

MA5616(config-if-h248-0)#display digitmap-timer   
-----------------------------------------------------     
Start     Timer length(s): 20     
Short     Timer length(s): 4     
Long      Timer length(s): 10     
Duration  Timer length(ms):3000   
-----------------------------------------------------

四、数图匹配方式:(在ONU上设置) 

为提高AG对数图的适应性,华为可以通过参数设置匹配方式(mg-software) 。

有下面两个数图存在:

1xx 1xxx 

如果你拨1000,按照最长匹配,他就应该匹配1xxx然后立即上报1000 

 

如果是最短匹配,匹配上1xx就上报,也就是会上报100然后再逐位收号,上报一个0。 但是该配置和定时器有很大的相关性。 

拨100,已经匹配上了1xx,也可能会匹配1xxx,所以要等待短定时器超时。 拨1000,只有1xxx得到了匹配,如果没有其他数图影响,应该立即上报。  

 

、SIP数图:(在终端上设置) 

SIP本身没有数图概念,华为沿用了H248协议的习惯。并且数图设置是在SIP终端上,每台终端一个设置(H.248是在软交换上设置,全局),所以提前规划就变得非常重要。 SIP要求终端一次送全号码,不能像H248那样(收到部分就可以上报,然后软交换再次发一个收号),sip要求一个invite上报全部号码。所以数图非常重要。

 

一、建议“号码匹配方式”设置为“最大匹配”,这样的话,那个+号才能起作用。 

二、建议“号间超时”设置为“3”,这样的话,可以缩短等待时间。因为不能设置为最小匹配,实在没有办法。 

三、请根据各自区域情况(7、8位),选择SIP数图 

 
如果本地号码是7位的, 请用下面的拨号规则 

[*#]x[0-9*]+#|**xx|*#x[0-9*]+#|#*x[0-9*]+#|#300##|#500##|[*#]96#xx+|[*#]95#xx+|*99*xx+#xx+|*66*x[0-9*]+#x[0-9*]+|##|010xxxxxxxx|02xxxxxxxxx|0[3-9]xxxxxxxxx|0311xxxxxxxx|037[179]xxxxxxxx|04[135]1xxxxxxxx|051[0-9]xxxxxxxx|052[37]xxxxxxxx|053[12]xxxxxxxx|057[1345679]xxxxxxxx|059[15]xxxxxxxx|0731xxxxxxxx|075[457]xxxxxxxx|076[09]xxxxxxxx|0898xxxxxxxx|00xxx+|[2-8][1-9]xxxxx   
|1[358]xxxxxxxxx|01[358]xxxxxxxxx|11[02479]|12[0268]|11[13568]x+|125xx|12[13479]x+|100[015678]x|100[2349]x+|10[1-9]xx+|14xx+|1[79]xx+|160|168xxxxx|16[1-79]x+|[48]00xxxxxxx|[48]0[1-9]x+|[23567]0xx+|955xx|95[0-46-9]xxx+|9[0-46-9]xxxx+   

如果本地号码是8位,用下面的拨号规则 

[*#]x[0-9*]+#|**xx|*#x[0-9*]+#|#*x[0-9*]+#|#300##|#500##|[*#]96#xx+|[*#]95#xx+|*99*xx+#xx+|*66*x[0-9*]+#x[0-9*]+|##|010xxxxxxxx|02xxxxxxxxx|0[3-9]xxxxxxxxx|0311xxxxxxxx|037[179]xxxxxxxx|04[135]1xxxxxxxx|051[0-9]xxxxxxxx|052[37]xxxxxxxx|053[12]xxxxxxxx|057[1345679]xxxxxxxx|059[15]xxxxxxxx|0731xxxxxxxx|075[457]xxxxxxxx|076[09]xxxxxxxx|0898xxxxxxxx|00xxx+   
|[2-8][1-9]xxxxxx|1[358]xxxxxxxxx|01[358]xxxxxxxxx|11[02479]|12[0268]|11[13568]x+|125xx|12[13479]x+|100[015678]x|100[2349]x+|10[1-9]xx+|14xx+|1[79]xx+|160|168xxxxx|16[1-79]x+|[48]00xxxxxxx|[48]0[1-9]x+|[23567]0xx+|955xx|95[0-46-9]xxx+|9[0-46-9]xxxx+  

以上数图唯一不同在:

7位号码:[2-8][1-9]xxxxx

8位号码:[2-8][1-9]xxxxxx

 

 

第一段,解决特殊业务  :

[*#]x[0-9*]+#|**xx|*#x[0-9*]+#|#*x[0-9*]+#|#300##|#500##|[*#]96#xx+|[*#]95#xx+|*99*xx+#xx+|*66*x[0-9*]+#x[0-9*]+|##  

 

第二段,解决长途区号是3位的:

0[3-9]xxxxxxxxx|0311xxxxxxxx|037[179]xxxxxxxx|04[135]1xxxxxxxx|051[0-9]xxxxxxxx|052[37]xxxxxxxx|053[12]xxxxxxxx|057[1345679]xxxxxxxx|059[15]xxxxxxxx|0731xxxxxxxx|075[457]xxxxxxxx|076[09]xxxxxxxx|0898xxxxx

0[3-9]XXXXXXXXX,是总纲,解决绝大多数长途电话。

其他,是解决区号是4位,本地电话是8位的。 00XXX+ 解决00国际长途 

以上,将01、02、03/4/5/6/7/8/9,已经描述全了。应该没有011、012等区号。就是说0开头的都全了。  

 

第三段,解决了188、189手机号段问题: 

1[358]xxxxxxxxx|01[358]xxxxxxxxx

紧急号码,+号表示超时上报 :

11[02479]|11[13568]x+ 

专门将125xx,比如12580单列:

12[0268]|125xx|12[13479]x+

同上的处理:

10[1-9]xx+

14,17,19:

14xx+|1[79]xx+

同上的处理:

160|168xxxxx|16[1-79]x+

分的更细,能缩短168xxxxx的接通时间,差别应该不大。 

14、16、17、19也都全了。

 

第四段,突出了400、800。另外要说明的是[2-8][1-9]xxxxxx,这最后一个x要根据本地网是7位还是8位来定。 

第四段将2、3、4、5、6、7、8,开头的全部搞定。加上上面已经搞定了0、1开头,就剩下9了。

[48]00xxxxxxx|[48]0[1-9]x+|[23567]0xx+|[2-8][1-9]xxxxxx  

 

第五段,突出了95539等特殊号码,能缩短接通时间:

955xx|95[0-46-9]xxx+|9[0-46-9]xxxx+   

 

8245数图里面不能有+,应该用. 

对于以.结尾的子方案需要显示加一个S(.表示0个或多个的重复)定时器,否则后面的号就收不了,下面是帮你修改好的数图(下面这个是本地网8位号码的,如果是7位的区域:[2-8][1-9]xxxxxx要少一个x) 

[*#]x[0-9*].#|**xx|*#x[0-9*].#|#*x[0-9*].#|#300##|#500##|[*#]96#xx.S|[*#]95#xx.S|*99*xx.#xx.S|*66*x[0-9*].#x[0-9*].S|##|010xxxxxxxx|02xxxxxxxxx|0[3-9]xxxxxxxxx|0311xxxxxxxx|037[179]xxxxxxxx|04[135]1xxxxxxxx|051[0-9]xxxxxxxx|052[37]xxxxxxxx|053[12]xxxxxxxx|057[1345679]xxxxxxxx|059[15]xxxxxxxx|0731xxxxxxxx|075[457]xxxxxxxx|076[09]xxxxxxxx|0898xxxxxxxx|00xxx.S|[2-8][1-9]xxxxxx|1[358]xxxxxxxxx|01[358]xxxxxxxxx|11[02479]|12[0268]|11[13568]x.S|125xx|12[13479]x.S|100[015678]x|100[2349]x.S|10[1-9]xx.S|14xx.S|1[79]xx.S|160|168xxxxx|16[1-79]x.S|[48]00xxxxxxx|[48]0[1-9]x.S|[23567]0xx.S|955xx|95[0-46-9]xxx.S|9[0-46-9]xxxx.S  

 

转载于:https://www.cnblogs.com/Liubit/p/5958028.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于H.248的树图规则 的相关文章

  • 网安之web攻防第三十天

    知识点 1 数据库堆叠注入 根据数据库类型决定是否支持多条语句执行 2 数据库二次注入 应用功能逻辑涉及上导致的先写入后组合的注入 3 数据库Dnslog注入 解决不回显 反向连接 SQL注入 命令执行 SSRF等 4 黑盒模式分析以上 二
  • airpodspro窃听模式_AirPods Pro实时收听怎么关闭? AirPods Pro实时收听的使用方法

    苹果全新AirPods Pro增加了许多新功能 首先 是控制播放 苹果在AirPods Pro中放弃了敲击手势 并用杆上的力传感器取代了它 控制音乐或视频只需要简单的短按即可 一次按压即可播放或暂停当前播放 两次按压将跳至下一曲目 而三次挤
  • 2019-07-11T09:15:41.000+0000类似时间转换

    let a 2019 07 11T09 15 41 000 0000 new Date a
  • (个人)AR电子书系统创新实训第一周(2)

    了解ZXing Net 想要在unity上实现下载资源的功能 我首先需要确认二维码扫描系统在unity上的可行性 如果要自行开发一套二维码扫描系统 不仅需要知道二维码生成和解码的原理 而且应该还需要用到一些图形学相关的代码库 如opencv
  • Android中为layout创建子文件夹

    在开发Android项目的时候 往往都有一大批java文件和layout文件 java文件分类比较简单 直接方法创建文件夹就行 但layout还需要多一步配置 看最后的文件结构图 实现步骤 1 创建相应的文件夹结构 需要注意的是 无论如何
  • ‘float‘ object has no attribute ‘decode‘

    错误代码 weibo df pd read csv Users dl Desktop 情感分析论文 词云图 微博文本数据 原始数据 原数据 表格 微博文本内容 csv print weibo df head 在读取csv或者excel文件时
  • Python基础—文件操作

    Python基础 文件操作 文件操作 文件是指为了重复使用或长期使用的目的 以文本或二进制形式存放于外部存储器 硬盘 U盘 光盘等 中的数据保存形式 文件是信息交换的重要途径 也是利用程序解决实际问题的重要媒介 程序对数据读取和处理都是在内
  • 单片机裸机环境下编写AT指令程序

    1 写在前面 AT指令在各种WIFI模块 2G 4G模块以及一些无线通讯模块中应用广泛 但是用过的朋友都知道 这种方式对于单片机编程来说 并不友好 本篇文章将以ESP8266 WIFI模块为例介绍在单片机裸机环境下编写AT指令程序的一种方式
  • 高精地图在无人驾驶中的应用

    转自 http 36kr com p 5060994 html 编者按 本文来自 程序员 作者 陈辰 刘少山 36氪经授权发布 高精地图是无人驾驶核心技术之一 精准的地图对无人车定位 导航与控制 以及安全至关重要 本文是 无人驾驶技术系列
  • PHP操作Redis LIST ,SET, HASH 的相关命令 (一)

    博客搬家 请访问 PHP操作Redis LIST SET HASH 的相关命令 一 PHP操作Redis KEY String 的相关命令 二 PHP操作Redis 有序集 Sorted Set 的相关命令 三
  • HttpServletRequest.getServletContext()一直提示找不到,而引出的问题

    开发j2ee项目的时候 需要用到servlet api 如果使用了maven web项目可以在pom xml中手动加入所需jar包 达到与依赖j2ee libarary同样的功能 可问题来了 1 问题描述 最近使用myeclipse10 7
  • 2023华为OD机试真题【打印机队列/排序】

    题目内容 有5台打印机打印文件 每台打印机有自己的待打印队列 因为打印的文件内容有轻重缓急之分 所以队列中的文件有1 10不同的代先级 其中数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印 如果存在两个优先级一样的
  • Struts框架(一)——简介

    引言 Struts 一个web应框架 概述 Struts基于MVC的一个web开源框架 也是一个表示层的框架 只能用于Web项目 内容 一 优缺点 1 优点 1 这是一个开源框架 能让开发人员更深入的了解其内部实现机制和原理 2 框架自带的
  • Spring之AOP的实现

    文章目录 什么是AOP jdk动态代理实现AOP spring实现AOP 什么是AOP AOP Aspect Oriented Programming 意为面向切面编程 我们所熟悉的是面向对象编程 OOP 将程序中所有参与模块都抽象成对象
  • vue2、3复习02-组件的生命周期,父子组件、兄弟组件、后代之间组件的数据共享,vuex,全局配置axious,使用ref引用dom元素,使用ref引用组件的方法,this.$nextTick

    1 组件的运行过程 声明周期函数 略 2 父子组件中的数据共享 父向子共享数据 子向父共享数据 父子之间双向数据同步 1 父组件向子组件共享数据 父组件通过v bind属性想子组件共享数据 子组件使用props接收数据 2 子组件向父组件共
  • 【C++】字体文件解析(FreeType)

    目录 字体文件解析 一 前言 二 基本排版概念 1 字体文件 2 字符图像和字符表 3 字符和字体指标 三 字形轮廓 四 字形指标 1 基线 笔和布局 2 排版指标和边界框 3 方位与步进 4 网格拟合的效果 5 文本宽度与边界框 五 代码
  • ipad怎么修改服务器,ipad怎么设置ipv6网络

    ipad怎么设置ipv6网络 内容精选 换一换 本文将为您介绍如何快速搭建IPv4网段或IPv6网段的VPC 以及搭建前的准备工作 IPv4 创建VPC及子网时 默认创建的网段为IPv4类型 IPv4网络无法访问Internet上的IPv6
  • 计算机组成原理实验四 微程序控制器实验报告

    我班算是几乎最后一个做实验的班级了 报告参考了一些朋友提供的数据加上一些自己的主观拙见 本人水平有限加之制作仓促难免有错误 望大家批评指正 4 1 微程序控制器实验 一 实验目的 1 掌握微程序控制器的组成原理 2 掌握微程序的编制 写入
  • 关于安装MinGw的问题

    前段时间电脑很卡 重装了系统 换了两条内存 电脑瞬间满血复活 不过重装各种东西就很麻烦了 安装个MinGW搞了我半天 所以今天记录一下怎么安装MinGW 1 哪下 MinGW w64GCC for Windows 64 32 bitshtt
  • Linux下配置java环境版本opencv

    安装gcc等编译环境 yum install gcc yum install python3 8 yum install cmake yum groupinstall Development Tools 去官方网站下载使用的压缩包4 5 0

随机推荐

  • nerf训练自己的数据,过程记录十分详细

    之前跑很多项目没有记录 后来再弄就不行了 这次特别记录一下 在梳理流程的同时希望给大家带来小小的帮助 我自己是在cuda11 2 windows环境下成功的 过程十分详细 有需要的朋友耐心看完 有问题可以评论区交流 首先 本文nerf是基于
  • Ubuntu 查看系统资源占用(CPU、内存、网络)

    系统监视器 CPU 内存 网络图 仅限当前桌面登录用户 gnome system monitor 查看内存占用 free h w 主要参数 b k m 分别以字节 KB MB 为单位显示内存使用情况 h 以合适的单位显示内存使用情况 最大为
  • SpringBoot+easypoi+vue导出word文档

    因为项目需求需要 临时写的有什么错误的地方望各位见谅 可以借鉴参考 easypoi依赖包
  • 在 Kylin 中实现异常值检测 UD(A)F

    本文讲解了时间序列数据异常值检测的基本概念和在 Kylin 中开发使用异常值检测 UDF 的方法 可以作为其他 UDF 开发的参考 通过在 Kylin 中移植 Hivemall 的 UDF 我们可以充分利用 Kylin 的优势 减少直接使用
  • TrafficMonitor安装报错

    由于找不到VCRUNTIME140 dll 无法继续执行代码 重新安装程序可能会解决次问题 解决方法 安装完 Visual Studio 2019后 就可以安装上了
  • STM32——一文完全读懂IIC通信

    文章目录 I2C基本概念 硬件线路 通信结构 I2C设备地址 I2C数据传输 I2C时钟速度和通信速度 I2C应答机制 I2C设备之间的冲突检测 I2C设备规格 主机读取数据 IIC通信过程 实际编程和应用 IO 口模拟 IIC 总线 常见
  • 服务器常用命令

    服务器常用命令 1 查看安装的软件 ps ef grep nginx 2 端口被占用 netstat anp grep 8801 2 2 通过程序名查询进程号 ps aux grep 程序名 2 3 通过进程号查询进程详细信息 ps ef
  • 【js】Object的常用方法

    Object assign target source 查看 Object entries 返回一个键值对数组查看 Object prototype toString call 查看
  • Redis的内存淘汰机制和删除策略

    Redis内存淘汰机制 Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除 内存的淘汰机制的初衷是为了更好地使用内存 配置 我们可以通过配置redis conf中的maxmemory这个值来开启内存淘汰功能 这个值
  • 【Python函数】——sort,sorted

    1 sorted和sort的常规使用 2 关于自定义比较函数 3 试验 from functools import cmp to key ll 2 3 10 1 2 3 5 6 7 2 5 10 2 4 10 根据一个维度进行排序 这里根据
  • sqli-labs Less-25、25a(sqli-labs闯关指南 25、25a)

    目录 Less 25 Less 25a Less 25 GET 基于错误 您所有的OR AND都属于我们 字符串单引号 源码 本关主要将 or and 进行了大小写的过滤 将其换成空 如何绕过 or 和 and 过滤 一般性提供以下几种思路
  • 国内第一篇讲解减少卡顿的代码级详细文章

    原文链接 原文链接 系统网站应用出现过卡顿 但却不知道如何优化 国内第一篇讲如何减少卡顿的代码级别详细文章 也是性能优化系列文章中的一篇 欢迎点赞 关注 也欢迎对其中的内容进行评论 经常听人说 不要阻塞主线程 或者 减少长耗时 该如何做呢
  • SQL Server 数据分页查询

    最近学习了一下SQL的分页查询 总结了以下几种方法 首先建立了一个表 随意插入的一些测试数据 表结构和数据如下图 现在假设我们要做的是每页5条数据 而现在我们要取第三页的数据 数据太少 就每页5条了 方法一 select top 5 fro
  • 火星数字

    火星人是以 13 进制计数的 地球人的 0 被火星人称为 tret 地球人数字 1 到 12 的火星文分别为 jan feb mar apr may jun jly aug sep oct nov dec 火星人将进位以后的 12 个高位数
  • attr 'explicit_paddings',tensorflow迁移到安卓报错不能载入模型

    attr explicit paddings tensorflow迁移到安卓报错不能载入模型 Android Stdio中报错 Caused by java io IOException Not a valid TensorFlow Gra
  • 第十章 网络工具--基于Linux3.10

    在测试io设备时 常常会用到iostat iotop工具 在查看内存时常常用到vmstat free slabtop工具 在查看调度器时 常常使用mpstat top以及ps工具 这里来说说网络相关的工具 有性能分析 网络管理 状态查看类工
  • App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原(一)

    App逆向案例 X嘟牛 Frida监听 WT JS工具还原 一 提示 文章仅供参考 禁止用于非法途径 文章目录 App逆向案例 X嘟牛 Frida监听 WT JS工具还原 一 前言 一 资源推荐 二 App抓包分析 三 反编译逆向分析 四
  • 2023华为产品测评官-开发者之声

    2023华为产品测评官 开发者之声 活动激发了众多开发者和技术爱好者的热情 他们纷纷递交了精心编写的产品测评报告 活动社群充满活力 参与者们热衷于交流讨论 互相帮助解决问题 一起探索云技术的无限可能 在此次活动中 华为云CodeArts获得
  • 守护线程

    守护线程是一类比较特殊的线程 一般用于处理后台的工作 比如JDK的垃圾回收线程 守护线程具备自动结束生命周期的特点 非守护线程不具备这样的特点 首先明确一个问题 JVM什么情况下会退出 The java virtual machine ex
  • 关于H.248的树图规则

    一 H248数图 数图可以是一个字符串 我们不妨称之为数图字符串 它遵循了Unix系统命令中的规则表达式的语法规定 也可以是许多数图字符串的并集 之间用 分隔 我们不妨称之为数图字符串列表 以下是一个数图的例子 2 8 xxxxxxx 13