使用Air724模块设计全功能DTU

目前物联网开发中,4G模块的使用方式有几下几种:

  1. MCU连接4G模块,使用串口通讯,MCU通过AT指令控制数据收发;
  2. 4G模块通过USB连接到ARM等系统,通过RNDS或者PPP拨号上网。
  3. 4G模块支持二次开发,直接在模块片上开发应用。

方案1适合各类低配MCU,对系统要求低,但是AT指令解析繁琐,效率低速度慢。
方案2适合带有USB和有运行系统的设备,比如ARM+linux。
方案3只适合支持二次开发的模块,而且一般4G模块受硬件限制,外设或功能受限。

合宙724 cat1模块

接下来将一步一步介绍我们物联网系统的设计思路和架构。我们的物联网基础能力设备预计将设计4G、NB、LORAWAN三种类型,其中4G方案选用了合宙Air724模块,主要是是其支持二次开发,且性价比较高,

从开源的IRTU开始

  • Air724模块底层采用FreeRTOS开发,合宙的开发人员移植了自家的Luat架构,把elua运行在了724上,这样Air724模块应用采用Lua脚本开发。
  • 合宙支持基于Lua开发了一个iRTU程序,功能丰富。我们将在iRTU基础上集成我们自己的功能和对接到我们的平台。
  • 我们的目标是让DTU实现全远程脚本化管理,即使二次开发也不需要写代码、下载固件,大概的功能设计如下:
#mermaid-svg-oahGo6tFC5aXE7tn .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-oahGo6tFC5aXE7tn .label text{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .node rect,#mermaid-svg-oahGo6tFC5aXE7tn .node circle,#mermaid-svg-oahGo6tFC5aXE7tn .node ellipse,#mermaid-svg-oahGo6tFC5aXE7tn .node polygon,#mermaid-svg-oahGo6tFC5aXE7tn .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-oahGo6tFC5aXE7tn .node .label{text-align:center;fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .node.clickable{cursor:pointer}#mermaid-svg-oahGo6tFC5aXE7tn .arrowheadPath{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-oahGo6tFC5aXE7tn .flowchart-link{stroke:#333;fill:none}#mermaid-svg-oahGo6tFC5aXE7tn .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-oahGo6tFC5aXE7tn .edgeLabel rect{opacity:0.9}#mermaid-svg-oahGo6tFC5aXE7tn .edgeLabel span{color:#333}#mermaid-svg-oahGo6tFC5aXE7tn .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-oahGo6tFC5aXE7tn .cluster text{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-oahGo6tFC5aXE7tn .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-oahGo6tFC5aXE7tn text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-oahGo6tFC5aXE7tn .actor-line{stroke:grey}#mermaid-svg-oahGo6tFC5aXE7tn .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-oahGo6tFC5aXE7tn .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-oahGo6tFC5aXE7tn #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-oahGo6tFC5aXE7tn .sequenceNumber{fill:#fff}#mermaid-svg-oahGo6tFC5aXE7tn #sequencenumber{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn #crosshead path{fill:#333;stroke:#333}#mermaid-svg-oahGo6tFC5aXE7tn .messageText{fill:#333;stroke:#333}#mermaid-svg-oahGo6tFC5aXE7tn .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-oahGo6tFC5aXE7tn .labelText,#mermaid-svg-oahGo6tFC5aXE7tn .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-oahGo6tFC5aXE7tn .loopText,#mermaid-svg-oahGo6tFC5aXE7tn .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-oahGo6tFC5aXE7tn .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-oahGo6tFC5aXE7tn .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-oahGo6tFC5aXE7tn .noteText,#mermaid-svg-oahGo6tFC5aXE7tn .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-oahGo6tFC5aXE7tn .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-oahGo6tFC5aXE7tn .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-oahGo6tFC5aXE7tn .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-oahGo6tFC5aXE7tn .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .section{stroke:none;opacity:0.2}#mermaid-svg-oahGo6tFC5aXE7tn .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-oahGo6tFC5aXE7tn .section2{fill:#fff400}#mermaid-svg-oahGo6tFC5aXE7tn .section1,#mermaid-svg-oahGo6tFC5aXE7tn .section3{fill:#fff;opacity:0.2}#mermaid-svg-oahGo6tFC5aXE7tn .sectionTitle0{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .sectionTitle1{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .sectionTitle2{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .sectionTitle3{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-oahGo6tFC5aXE7tn .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .grid path{stroke-width:0}#mermaid-svg-oahGo6tFC5aXE7tn .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-oahGo6tFC5aXE7tn .task{stroke-width:2}#mermaid-svg-oahGo6tFC5aXE7tn .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .taskText:not([font-size]){font-size:11px}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-oahGo6tFC5aXE7tn .task.clickable{cursor:pointer}#mermaid-svg-oahGo6tFC5aXE7tn .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-oahGo6tFC5aXE7tn .taskText0,#mermaid-svg-oahGo6tFC5aXE7tn .taskText1,#mermaid-svg-oahGo6tFC5aXE7tn .taskText2,#mermaid-svg-oahGo6tFC5aXE7tn .taskText3{fill:#fff}#mermaid-svg-oahGo6tFC5aXE7tn .task0,#mermaid-svg-oahGo6tFC5aXE7tn .task1,#mermaid-svg-oahGo6tFC5aXE7tn .task2,#mermaid-svg-oahGo6tFC5aXE7tn .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutside0,#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutside2{fill:#000}#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutside1,#mermaid-svg-oahGo6tFC5aXE7tn .taskTextOutside3{fill:#000}#mermaid-svg-oahGo6tFC5aXE7tn .active0,#mermaid-svg-oahGo6tFC5aXE7tn .active1,#mermaid-svg-oahGo6tFC5aXE7tn .active2,#mermaid-svg-oahGo6tFC5aXE7tn .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-oahGo6tFC5aXE7tn .activeText0,#mermaid-svg-oahGo6tFC5aXE7tn .activeText1,#mermaid-svg-oahGo6tFC5aXE7tn .activeText2,#mermaid-svg-oahGo6tFC5aXE7tn .activeText3{fill:#000 !important}#mermaid-svg-oahGo6tFC5aXE7tn .done0,#mermaid-svg-oahGo6tFC5aXE7tn .done1,#mermaid-svg-oahGo6tFC5aXE7tn .done2,#mermaid-svg-oahGo6tFC5aXE7tn .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-oahGo6tFC5aXE7tn .doneText0,#mermaid-svg-oahGo6tFC5aXE7tn .doneText1,#mermaid-svg-oahGo6tFC5aXE7tn .doneText2,#mermaid-svg-oahGo6tFC5aXE7tn .doneText3{fill:#000 !important}#mermaid-svg-oahGo6tFC5aXE7tn .crit0,#mermaid-svg-oahGo6tFC5aXE7tn .crit1,#mermaid-svg-oahGo6tFC5aXE7tn .crit2,#mermaid-svg-oahGo6tFC5aXE7tn .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-oahGo6tFC5aXE7tn .activeCrit0,#mermaid-svg-oahGo6tFC5aXE7tn .activeCrit1,#mermaid-svg-oahGo6tFC5aXE7tn .activeCrit2,#mermaid-svg-oahGo6tFC5aXE7tn .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-oahGo6tFC5aXE7tn .doneCrit0,#mermaid-svg-oahGo6tFC5aXE7tn .doneCrit1,#mermaid-svg-oahGo6tFC5aXE7tn .doneCrit2,#mermaid-svg-oahGo6tFC5aXE7tn .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-oahGo6tFC5aXE7tn .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-oahGo6tFC5aXE7tn .milestoneText{font-style:italic}#mermaid-svg-oahGo6tFC5aXE7tn .doneCritText0,#mermaid-svg-oahGo6tFC5aXE7tn .doneCritText1,#mermaid-svg-oahGo6tFC5aXE7tn .doneCritText2,#mermaid-svg-oahGo6tFC5aXE7tn .doneCritText3{fill:#000 !important}#mermaid-svg-oahGo6tFC5aXE7tn .activeCritText0,#mermaid-svg-oahGo6tFC5aXE7tn .activeCritText1,#mermaid-svg-oahGo6tFC5aXE7tn .activeCritText2,#mermaid-svg-oahGo6tFC5aXE7tn .activeCritText3{fill:#000 !important}#mermaid-svg-oahGo6tFC5aXE7tn .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-oahGo6tFC5aXE7tn g.classGroup text .title{font-weight:bolder}#mermaid-svg-oahGo6tFC5aXE7tn g.clickable{cursor:pointer}#mermaid-svg-oahGo6tFC5aXE7tn g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-oahGo6tFC5aXE7tn g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-oahGo6tFC5aXE7tn .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-oahGo6tFC5aXE7tn .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-oahGo6tFC5aXE7tn .dashed-line{stroke-dasharray:3}#mermaid-svg-oahGo6tFC5aXE7tn #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn .commit-id,#mermaid-svg-oahGo6tFC5aXE7tn .commit-msg,#mermaid-svg-oahGo6tFC5aXE7tn .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-oahGo6tFC5aXE7tn g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-oahGo6tFC5aXE7tn g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-oahGo6tFC5aXE7tn g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-oahGo6tFC5aXE7tn .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-oahGo6tFC5aXE7tn .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-oahGo6tFC5aXE7tn .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-oahGo6tFC5aXE7tn .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-oahGo6tFC5aXE7tn .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-oahGo6tFC5aXE7tn .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-oahGo6tFC5aXE7tn .edgeLabel text{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-oahGo6tFC5aXE7tn .node circle.state-start{fill:black;stroke:black}#mermaid-svg-oahGo6tFC5aXE7tn .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-oahGo6tFC5aXE7tn #statediagram-barbEnd{fill:#9370db}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-state .divider{stroke:#9370db}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-oahGo6tFC5aXE7tn .note-edge{stroke-dasharray:5}#mermaid-svg-oahGo6tFC5aXE7tn .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-oahGo6tFC5aXE7tn .error-icon{fill:#522}#mermaid-svg-oahGo6tFC5aXE7tn .error-text{fill:#522;stroke:#522}#mermaid-svg-oahGo6tFC5aXE7tn .edge-thickness-normal{stroke-width:2px}#mermaid-svg-oahGo6tFC5aXE7tn .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-oahGo6tFC5aXE7tn .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-oahGo6tFC5aXE7tn .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-oahGo6tFC5aXE7tn .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-oahGo6tFC5aXE7tn .marker{fill:#333}#mermaid-svg-oahGo6tFC5aXE7tn .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-oahGo6tFC5aXE7tn {color: rgba(0, 0, 0, 0.75);font: ;}

DTU
远程配置参数
远程启动脚本
差分升级FOTA
基站定位
各类云平台的自动接入
STM32互联总线

开始设计

后面的文章将一步步介绍我们的设计过程!

  1. DTU远程配置云平台的设计
  2. DTU远程启动脚本的设计
  3. 差分升级DFOTA设计
  4. STM32高速互联设计(告别AT)

对物联网技术感兴趣请加入我们交流群,欢迎各种技术交流,
QQ群: 830407941
对我们产品感兴趣请查看淘宝:DEVELOPLINK
Air724核心板

使用Air724模块设计全功能DTU相关推荐

  1. typec扩展坞hdmi没反应_全功能扩展坞Type-C Docking (扩展坞) 方案讲解-可实现拔插不掉屏...

    Dock,又叫做扩展坞,这类产品的流行是因为笔记本电脑的USB或者视频等接口数量有限,用户希望扩展出更多数量的或者更多种类的接口,来满足多元应用需求.由于笔记本接口输出功率的限制,扩展坞通常需要通过自 ...

  2. Java充电宝模型设计_继续探讨点赞功能模块设计

    继续探讨点赞功能模块设计 前几天我们设计了点赞模块的模块,大致思路就是: 用户点赞,首先缓存到redis中进行保存,redis中既要保存点赞总数,还要保存点赞记录.然后定时执行redis数据到数据库中 ...

  3. 2022-05-14:语法补全功能,比如“as soon as possible“, 当我们识别到“as soon as“时, 基本即可判定用户需要键入“possible“。 设计一个统计词频的模型,

    2022-05-14:语法补全功能,比如"as soon as possible", 当我们识别到"as soon as"时, 基本即可判定用户需要键入&quo ...

  4. 使用Verilog语言描述计数器——脉动计数器;脉动计数器具有减法计数功能。采用模块设计和行为级设计方法。

    使用Verilog语言描述计数器--脉动计数器. 内容说明: 本次设计的计数器属于脉动计数器.使用Verilog语言设计,并且设计方法采用模块设计和简单的行为级设计.会有这两种设计的对比测试.最后,会 ...

  5. MTK,4G全网通模块设计资料

    MTK,4G全网通模块设计资料,芯片支持6735,6753, 6737,8735,8783,六模26频(可选)仅提供PCB及SCH设计资料,可提供生产对应的量产资料,软件代码等,本人可提供MTK或高通 ...

  6. 1278: 实现计算器基本功能(1级)编写程序分模块设计实现计算器的基本运算功能(加减乘除,除数默认不为0)。

    1278: 实现计算器基本功能(1级) 时间限制: 1 Sec 内存限制: 128 MB 提交: 78 解决: 51 [提交] [状态] [讨论版] [命题人:admin] 题目描述 编写程序分模块设 ...

  7. 学生信息管理系统之第二篇主要功能模块设计和数据库设计

     4.2系统主要功能模块设计: (1)基本信息模块:是管理员对学生信息进行添加操作.通过本界面管理员可以对学生信息进行相应的修改,包括学号.姓名.出生日期等.可以通过该界面输入学生姓名实现查询该学 ...

  8. 智能手环功能模块设计_基于51单片机的智能手环蓝牙模块设计

    龙源期刊网 http://www.qikan.com.cn 基于 51 单片机的智能手环蓝牙模块设计 作者:王烈进 王游司 陈洪燕 孙超 卢宇 来源:<电脑知识与技术> 2018 年第 2 ...

  9. deepin nfs模块_01.Ceph Dashboard全功能安装集成更新安装告警模块

    No.1 引言 在这个特殊的时期里,有比较多的时间折腾技术,在前段时间折腾完Cobbler以及Ansible Tower后,想着要折腾啥?这时候想起来,之前看技术文章知道最新版本的Ceph Nauti ...

最新文章

  1. DevOps也要考虑安全问题:微软、任天堂等知名公司源码遭泄露
  2. Python基础教程: with语句详解
  3. C#使用Objects Comparer进行对象比较
  4. python应用体系_python-大型django应用程序体系结构
  5. 云计算已在大数据分析中发挥重要作用
  6. Java基础入门笔记-布尔类型变量
  7. Python实战从入门到精通第十五讲——定义匿名或内联函数
  8. 技术面试者的技术深度和广度
  9. CMOS checksum error-Defaults loaded 故障解决办法
  10. 使用Resource Hacker 实现替换exe图标的
  11. 箫演奏技巧符号大全图解
  12. 深圳绘制SVG地图数据
  13. ssm 项目中引用 百度bae的sdk 安装jar
  14. 8脚 tja1050t_TJA1050TD-T_PDF技术资料下载_货期信息(1/10)_NXP - 万联芯城
  15. The word 'jsp' is not correctly spelled. Eclipse 拼写检查出错处理办法
  16. 技术前沿---5G技术的实现原理
  17. [DataAnalysis]数据分析文本编辑器软件UE-常用操作汇总
  18. rk3288 7.1 lvds屏幕亮度偏暗
  19. 乱世奸雄纵横三国:品曹操
  20. socket.py line224 in meth return getattr(self._sock, name)(*args) error:[Error 2] No such file or di

热门文章

  1. 实用交互设计工具大盘点
  2. UI设计用什么软件做?
  3. 一轻机器人_遨博轻型协作机器人6轴
  4. 洛谷 P1118 [USACO06FEB]数字三角形Backward Digit Su…
  5. simplis汉化包_Simtrix.simplis中文教程
  6. Photometric Stereo 光度立体三维重建(三)——由法向量恢复深度
  7. php做网站步骤_php建一个网站步骤
  8. MT6572背光不够亮
  9. MATLAB-AHP(层次分析法求解)
  10. jee mysql 驱动_eclipsejee怎么连接mysql数据库