Ext Js简单Tree创建及其异步加载

Ext Js简单Tree创建及其异步加载
Ext Js简单Tree创建及其异步加载

https://www.360docs.net/doc/5d15738470.html,/SanMaoSpace/archive/2013/02/04/2892 173.html

Ext Js简单Tree创建及其异步加载

对于Ext Js的树的使用也是比较多的,本篇分享简单的Tree的创建及其树的异步加载处理。

1.简单TreePanel的创建

function creatTree() {//创建简单的树

//节点集合创建

var rootNode = new Ext.tree.TreeNode({ id: 'root', text: '根节点', expanded: true }); //只展开根节点(只展开某节点)

var node1 = new Ext.tree.TreeNode({ id: 'node1', text: 'Node1', leaf: true}); //为叶子节点

var node2 = new Ext.tree.TreeNode({ id: 'node2', text: 'Node2' });

var node3 = new Ext.tree.TreeNode({ id: 'node3', text: 'Node3', expanded: true });

var arrNodes = [//节点集合

new Ext.tree.TreeNode({ id: 'nodeOne', text: 'NodeOne' }),

new Ext.tree.TreeNode({ id: 'nodeTwo', text: 'NodeTwo' }),

new Ext.tree.TreeNode({ id: 'nodeThree', text: 'NodeThree' })

];

var arrayNodes = [new Ext.tree.TreeNode({ text: 'nodeOne' }), new

Ext.tree.TreeNode({ text: 'nodeTwo' })];

node2.appendChild(arrayNodes); //将集合节点添加到对应的节点

node3.appendChild(arrNodes);

rootNode.appendChild(node1); //根节点添加对应的节点

rootNode.appendChild(node2);

rootNode.appendChild(node3);

//也可以如下添加节点集合

//rootNode.appendChild([node1, node2, node3]); //添加节点集合

var treePanel = new Ext.tree.TreePanel({

renderTo: Ext.getBody(), width: 150, root: rootNode,

animate: true, //是否动画

enableDD: true, //是否拖拽操作

useArrows: true, //使用Vista-style箭头

autoScroll: true, //是否自动滚动条

containerScroll: true//向ScrollManager注册此容器

});

}

2.简单TreePanel的使用

//简单的树的练习

function treeTest() {

var rootNode = new Ext.tree.TreeNode({//创建根节点

id: 'root', text: '树的根', nodeType: 'async'

});

rootNode.appendChild(new Ext.tree.TreeNode({ id: 'node1', text: 'Node1', leaf: true })); //是叶子节点,将不能添加子节点

rootNode.appendChild(new Ext.tree.TreeNode({ id: 'node2', text: 'Node2', leaf: true }));

var node3 = new Ext.tree.TreeNode({ id: 'node3', text: 'Node3' }); //创建节

点3

var arrNodes = [//节点集合

new Ext.tree.TreeNode({ id: 'node30', text: 'Node30' }),

new Ext.tree.TreeNode({ id: 'node31', text: 'Node31' }),

new Ext.tree.TreeNode({ id: 'node32', text: 'Node32' })];

node3.appendChild(arrNodes); //将节点集合添加到节点3中

rootNode.appendChild(node3); //将节点3添加到根节点中

var treePanel = new Ext.tree.TreePanel({//创建节点树对象

renderTo: Ext.getBody(), root: rootNode, width: 200, animate: true, enableDD: true//animate动画效果,enableDD拖拽效果

});

//tree.getRootNode().expand(); //某个节点展开

//node.expand(true);

treePanel.expandAll(); //展开树下的所有节点

//该节点下的所有子节点都触发

//node3.eachChild(function () { alert('TT') });

//某个节点(节点3)点击事件,鼠标位置

//node3.on('click', function (node, e) { Ext.Msg.alert('信息提示', '你点击' + node.text + '的节点' + e.getXY()) });

treePanel.on('click', function (node) {//所有节点都触发改事件

if (node.hasChildNodes()) {//判断该节点是否含有子节点

var msg = node.text + '有子节点:';

var childNodes = node.childNodes; //取得该节点下的所有子节点

for (var i = 0; i < childNodes.length; i++) {//遍历子节点集合

msg += childNodes[i].text + '|'; //拼接节点集合文本信息

}

Ext.Msg.alert('信息提示', msg);

} else {

if (node.isLeaf()) {//判断该节点是否为叶子节点

Ext.Msg.alert('信息提示', '你点击的是叶子节点:' + node.text);

}

}

})

}

3.简单前台Ext Js对树的增删改

//前台ExtJs操作对树的增删改操作

function treeOperation() {

var root = new Ext.tree.TreeNode({ text: '根节点' });

var treePanel = new Ext.tree.TreePanel({

width: 300, height: 600, renderTo: Ext.getBody(), root: root, id:

'testTree',

tbar: [

{ text: '添加同级节点', handler: function ()

{ singleNodeInfo('addSibling', 'testTree'); } },

{ text: '添加下级节点', handler: function ()

{ singleNodeInfo('addChild', 'testTree'); } },

{ text: '修改节点', handler: function ()

{ singleNodeInfo('update', 'testTree'); } },

{ text: '删除节点', handler: function ()

{ removeNode('testTree'); } }

]

});

//treePanel.on('contextmenu', function (node, e) { var myMenu = createMenu(); node.select(); myMenu.showAt(e.getPoint()); });

//对于节点内容的操作,也可以使用Ext.Msg.prompt来处理,如下:

//Ext.msg.prompt('请输入节点名称', '节点名称:', function (btn, text) { if (btn == 'ok') { alert(text); } });

}

function removeNode(treePanelID) {//删除节点,参数:树ID

var treePanel = Ext.getCmp(treePanelID);

var selNode = treePanel.selModel.getSelectedNode();

if (selNode == null) {

Ext.Msg.alert('信息提示', '请选择你要删除的节点!');

return;

}

if (!selNode.hasChildNodes()) {//是否包含子节点

var removeNode = selNode.remove(); //其父节点移除自己

Ext.Msg.alert('信息提示', '你移除了节点' + removeNode.text);

}

else {

Ext.Msg.confirm('信息提示', '该节点为父节点,一并删除?', function (btn) { if (btn == 'yes') {

selNode.removeAll(); //连同下面的子节点一起删除

}

});

}

}

function AddAndUpdateNode(type, selNode, nodeName) {//添加\修改节点,参数:操作类型\选中节点\节点名字

if (selNode != null) {

switch (type) {

case 'addChild': //添加子节点

var addNode = new Ext.tree.TreeNode({ text: nodeName });

selNode.appendChild(addNode);

break;

case 'addSibling': //添加同级节点

var addNode = new Ext.tree.TreeNode({ text: nodeName });

var parentNode = selNode.parentNode.appendChild(addNode);

break;

case 'update': //修改文本内容

selNode.setText(nodeName);

break;

}

selNode.expand(); //选中节点展开

}

}

function singleNodeInfo(type, treeId) {//参数:操作类型,treePanel对象var treePanel = Ext.getCmp(treeId);

var selNode = treePanel.selModel.getSelectedNode(); //获取选中的节点

if (selNode == null) {

Ext.Msg.alert('信息提示', '请选择一个节点');

return;

}

var win = new Ext.Window({//弹出信息对话框

title: '添加修改节点', width: 230, height: 100,

bodyStyle: "padding-top:10px",

items: [

{ xtype: 'label', text: '节点名字:', width: 200 },

{ xtype: 'textfield', id: 'txtNodeName' }

],

bbar: [

{ text: '保存', handler: function () {

var nodeName = Ext.getCmp('txtNodeName').getValue();

AddAndUpdateNode(type, selNode, nodeName); //更新数据

Ext.Msg.alert('信息提示', '保存成功!'); win.close();

}

}, '->',

{ text: '取消', handler: function () { win.close(); } }

]

});

if (type == "update") {

Ext.getCmp('txtNodeName').setValue(selNode.text);

}

win.show(); //显示信息

}

//你也可以试试添加一个右键菜单对节点进行操作

function createMenu() {

var myMenu = new Ext.menu.Menu(

{ xtype: 'button', text: '添加节点', handler: function (tree) { Ext.Msg.alert('信息提示', '添加节点'); } },

{ xtype: 'button', text: '下级节点', handler: function ()

{ Ext.Msg.alert('信息提示', '下级节点'); } },

{ xtype: 'button', text: '修改节点', handler: function ()

{ Ext.Msg.alert('信息提示', '修改节点'); } },

{ xtype: 'button', text: '删除节点', handler: function ()

{ Ext.Msg.alert('信息提示', '删除节点'); } }

);

return myMenu;

}

4.简单树的异步加载(需要创建异步节点Ext.tree.AsyncTreeNode并使用

Ext.tree.TreeLoader加载)(注意对于叶子节点的指定)

function treeAsyncTest() {//树的异步加载,一次加载对应的数据

var treePanel = new Ext.tree.TreePanel({

el: 'divTree', //渲染divID

width: 150, height: 300, animate: true, enableDD: true, rootVisible: true, loader: new Ext.tree.TreeLoader({ url: 'TestTreeAjx.ashx', baseParams: { Option: 'GetAllData'} })

});

var rootNode = new Ext.tree.AsyncTreeNode({ text: '根节点' });

treePanel.setRootNode(rootNode);

treePanel.render(); //进行渲染

rootNode.expand(true, true); //参数1:展开所有节点;参数2:启动动画效果//这样操作完你会发现所有的节点可能会无限的延展下去,

//是因为数据引起的,在加载时,传出的数据指定最后一级为叶子节点就可以了

}

5.针对不同的节点异步加载不同的节点数据(注意对于叶子节点的指定)

function treeNodeAsync() {//根据不同的节点值,获取不同的加载数据(可以是节点ID\节点文本等等)

var rootNode = new Ext.tree.AsyncTreeNode({ text: 'rootNode' });

var treePanel = new Ext.tree.TreePanel({

el: 'divTree',

width: 150, height: 300, animate: true, enableDD: true, rootVisible: true, listeners: {

'beforeload': function (node) {//按这种形式传递的数据,不指定最后的叶子节点的话,会遍历每个节点,性能不好(如果需要,在对应节点下指定叶子节点)

node.loader = new Ext.tree.TreeLoader({ url: 'TestTreeAjx.ashx', baseParams: { Option: 'GetNodeData', NodeText: node.text} })

}

}

});

treePanel.setRootNode(rootNode);

//这里可以试试对于节点展开和非展开所有节点的数据加载情况

//一次展开所有节点,会一次遍历完毕加载数据;不展开节点折叠起来,会在对应节点展开需加载时加载对应数据

rootNode.expand(false, true);

treePanel.render();

}

6.其Ajax请求页面TestTreeAjx.ashx代码(简单的模拟数据)

namespace WebExtJS.WebTest

{

///

/// TestTreeAjx 的摘要说明

///

public class TestTreeAjx : IHttpHandler

{

private static IDictionary> dic = null;

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

string strOption = context.Request["Option"] != null ?

context.Request["Option"].ToString() : string.Empty;

string nodeText = context.Request["NodeText"] != null ?

context.Request["NodeText"].ToString() : string.Empty;

string strMessage = string.Empty;

dic = GetData();

switch (strOption)

{

case"GetAllData": strMessage = GetAllData(dic); break;

case"GetNodeData": strMessage = GetNodeData(nodeText); break;

default: break;

}

context.Response.Write(strMessage);

context.Response.End();

}

///

///获取全部的数据

///

///

private string GetAllData()

{

string data = "[{text:'Node1',leaf:true},"

+

"{text:'Node2',children:[{text:'Node20',leaf:true},{text:'Node21',leaf:true} ]},"

+

"{text:'Node3',children:[{text:'Node30',leaf:true},{text:'Node31',leaf:true}

,{text:'Node32',leaf:true}]}]";

return data;

}

///

///根据不同的节点文本获取对应的节点

///

///

///

private string GetNodeData(string nodeText)

{

string json = string.Empty;

switch (nodeText)

{//指定叶子节点遍历非叶子节点(如果在其父节点指定为叶子节点,将不会加载对应的节点数据)

case"rootNode": json =

"[{text:'Node1',leaf:true},{text:'Node2'},{text:'Node3'}]"; break;

case"Node2": json =

"[{text:'Node20',leaf:true},{text:'Node21',leaf:true}]"; break;

case"Node3": json =

"[{text:'Node30',leaf:true},{text:'Node31',leaf:true},{text:'Node32',leaf:tr ue}]"; break;

}

//switch (nodeText)

//{//不指定叶子节点遍历每一个节点

// case "rootNode": json =

"[{text:'Node1'},{text:'Node2'},{text:'Node3'}]"; break;

// case "Node2": json = "[{text:'Node20'},{text:'Node21'}]"; break; // case "Node3": json =

"[{text:'Node30'},{text:'Node31'},{text:'Node32'}]"; break;

//}

return json;

}

///

///简单字典模拟数据

///

///

private IDictionary> GetData()

{

IDictionary> dic = new Dictionary>(); List nodeRoot = new List();

List Node1 = new List { new Node(10, "Node10") };

List Node2 = new List { new Node(20, "Node20"), new Node() { NodeID = 21, NodeName = "Node21" }, new Node() { NodeID = 22, NodeName = "Node22" } };

List Node3 = new List { new Node(30, "Node30"), new Node(31, "Node31"), new Node(32, "Node32"), new Node(33, "Node33") };

dic.Add(0, nodeRoot);//处理根节点

dic.Add(1, Node1);

dic.Add(2, Node2);

dic.Add(3, Node3);

return dic;

}

///

///遍历拼接,获取全部数据

///

///

///

private string GetAllData(IDictionary> dic)

{

string json = string.Empty;

json = "[";

if (dic.Count > 0)

{

for (int i = 0; i < dic.Count; i++)

{

List tempNode;

if (dic[i].Count == 0)//根节点判断

{

continue;

}

else

{

tempNode = dic[i];

}

if (tempNode.Count == 1)//只有一个叶子节点

{

json += "{text:'" + tempNode[0].NodeName + "'},";

}

else

{

json += "{text:'" + tempNode[0].NodeName + "',children:[";

for (int j = 1; j < tempNode.Count; j++)//对其叶子节点遍历

{

json += "{text:'" + tempNode[j].NodeName +

"',leaf:true},";

}

if (json.IndexOf(',') > 0)

{

json = json.Substring(0, https://www.360docs.net/doc/5d15738470.html,stIndexOf(','));

}

json += "]},";//闭合该节点

}

}

}

if (json.IndexOf(',') > 0)

{

json = json.Substring(0, https://www.360docs.net/doc/5d15738470.html,stIndexOf(','));

json += "]";

}

return json;

}

public bool IsReusable

{

get

{

return false;

}

}

}

public class Node

{

public Node() { }

public Node(int nodeID, string nodeName)

{

this.NodeID = nodeID;

this.NodeName = nodeName; }

public int NodeID;

public string NodeName;

}

}

语文六大修辞手法详解

语文六大修辞手法详解 一修辞手法详解:比喻 1、定义 比喻就是“打比方”。是根据两种不同性质的事物之间的相似之处,用一种事物来比方另一种事物的修辞手法。 2、结构 比喻一般由三个部分组成,即本体(被比喻的事物或情景)、喻体(被拿来用作比喻的事物或情景)和比喻词(比喻关系的标志性词语)。 3、构成条件——注意事项 构成比喻的关键:①甲(本体)和乙(喻体)必须是本质不同的事物;②甲乙之间必须有相似之处。①②两条必须同时成立,否则比喻不能成立。 一个句子是不是比喻,不能单看比喻词。 下面几例不是比喻句: ①他的性格像母亲。——同类事物做比较 ②这天黑沉沉的好象要下雨。——表示猜测 ③不要带着思想包袱去工作。——词的比喻意 4、比喻的目的 比喻旨在于用形象的语言阐明思想。即通过比喻的手法,让人对不明白、不理解、不清楚、不认识的事物得到认识和理解。 因此,必须是用人们所熟悉的事物做喻体来比喻人们不熟悉的事物(本体),以让人对原本不认识的事物得以认识,绝不可用人们不熟悉的事物来比喻人们熟悉的事物,更不可用人们都不认识的事物去比喻人们都不认识的事物。则否适得其反,事与愿违。 比喻的具体目的主要有下面几种: ①说明本体的可能性。本体被一件令人诧异的事物所修饰,须运用比喻消除这种诧异性。例如: 残酷的战争起于片言之语,君不见熊熊烈火大多来自些微火星。 某人少时劳累老时休息,恰如一只蚂蚁,夏天努力收集食物,以便冬天坐享。 ②阐明本体的情况。本体的特性原先不为人知,用比喻加以形容,大家便一目了然。 地球圆圆的,象只橙子。 她体段柔软,仿佛生就一身藤骨。 ③阐明本体情况的程度。原先对本体的特性只有概括性的了解,经过比喻,指明了这种特性的程度。这常常是可以感觉得到的事物。例如: 病人服用了一种苦药,它仿佛就是苦瓜。 房子着了火,我仿佛觉得地狱移到了人间。 ④肯定本体的情况。叙述本体的事物须用比喻来肯定和阐明。这种情况下是用可以感知的事物来比喻理性的事物。例如: 学者的长处即使不让发挥,它也象麝香那样,被遮盖住,却不能阻止它香气四溢。 轻浮的人正在不知不觉中走向毁灭,就象飞蛾扑火那样。

子网划分基础的方法步骤详解

子网划分基础的方法步骤详解 导读:我根据大家的需要整理了一份关于《子网划分基础的方法步骤详解》的内容,具体内容:现在我们用的互联网的时间越来越多,需要掌握的网络技能也很多,那么你知道子网划分方法的方法吗?下面是我整理的一些关于子网划分方法的相关资料,供你参考。子网划分的方法大... 现在我们用的互联网的时间越来越多,需要掌握的网络技能也很多,那么你知道子网划分方法的方法吗?下面是我整理的一些关于子网划分方法的相关资料,供你参考。 子网划分的方法 大家都知道,为了确定子网,分开主机和路由器的每个接口,从而产生了几个分离的网络岛,接口端连接了这些独立的网络的端点。这些独立的网络中的每个都叫做一个子网(subnet)。 我们知道IP地址是一个4字节(共32bit)的数字,被分为4段,每段8位,段与段之间用句点分隔。为了便于表达和识别,IP地址是以十进制形式表示的如210.52.207.2,每段所能表示的十进制数最大不超过255。IP 地址由两部分组成,即网络号(Network ID)和主机号(Host ID)。网络号标识的是Internet上的一个子网,而主机号标识的是子网中的某台主机。网际地址分解成两个域后,带来了一个重要的优点:IP数据包从网际上的一个网络到达另一个网络时,选择路径可以基于网络而不是主机。在大型的网际中,这一点优势特别明显,因为路由表中只存储网络信息而不是主机信息,这样可以大大简化路由表。

子网划分的例子 网络地址:10.0.0.0;子网掩码255.255.0.0(/16) 1.子网数=2 的8次方-2=254 2.主机数=2 的16次方-2=65534 3. 有效子网?:block size=256-255=1,2,3,......; 所以第一个子网为10.1.0.0, 最后1 个为10.25 4.0.0 4.广播地址:下个子网-1.所以第一个子网和最后1 个子网的广播地址分别是10.1.25 5.255 和 10.254.255.255 5.有效主机范围是:第一个子网的主机地址是10.1.0.1 到 10.1.255.254;最后1 个是10.254.0.1 到10.254.255.254 子网划分的基础 子网划分(subnetting)的优点 1.减少网络流量 2.提高网络性能 3.简化管理 4.易于扩大地理范围 怎么样创建一个子网: 如何划分子网?首先要熟记2 的幂:2 的0 次方到9 次方的值分别 为:1,2,4,8,16,32,64,128,256和512。还有要明白的是:子网划分是借助于取走主机位,把这个取走的部分作为子网位。因此这个意味划分越多的子网,主机将越少。

在Eclipse中搭建ExtJS环境

下载:ExtJS 4.1.1 在Eclipse中安装spket插件 下载:spket-1.6.23.zip 最低要求:你需要java 1.5或更高版本运行安装程序,可独立使用 步骤: 1.作为eclipse的插件使用,按Plugin进入下载页面把他下载下来。 2.下载完成解压文件得到一个eclipse文件夹,将文件夹下的plugins和features两个文件夹拷贝到使用的Eclipse安装包下覆盖原有同名文件夹, 3.启动Eclipse,在工具栏window中打开preferences,弹出对话框左边会看到Spket, 4.打开Spket下的JavaScript Profile,点击New,添加Ext(名称可自定义) 5.点击Ext,选择右边的Add Library,选择ExtJS 6.选中ExtJS,选择右边的Add File,选中已下载的并解压的ExtJS包的根目录下的build 下的sdk.jsb3 7.这时会出现很多的选择框,我是全选了,点击ok就安装好了, 8.选中Ext,点击右面的Default,ok,然后重启eclipse,如果还不行,选中建立的js文件右击,有Open With,选择Spket JavaScript Editor,这样就应该可以了 让spket作为javascript的默认编辑器 步骤: Eclipse工具栏window --> preferences --> Editors --> File Associations --> 右面的File types选中*.js --> 下面的Associated editors选中Spket javascript Editor --> 按右面的按钮Default --> OK退出 建立js文件,的图标变成js文件对应的图片就成功了。 Hello word 项目建立 1.eclipse中新建Dynamic Web Project项目,命名为ExtjsTest 2.为避免eclipse的校验可进行如下操作 i 选中工程右键 --> Properties --> Resource --> Text file encoding -->

电路原理图详解

电子电路图原理分析 电器修理、电路设计都是要通过分析电路原理图,了解电器的功能和工作原理,才能得心应手开展工作的。作为从事此项工作的同志,首先要有过硬的基本功,要能对有技术参数的电路原理图进行总体了解,能进行划分功能模块,找出信号流向,确定元件作用。若不知电路的作用,可先分析电路的输入和输出信号之间的关系。如信号变化规律及它们之间的关系、相位问题是同相位,或反相位。电路和组成形式,是放大电路,振荡电路,脉冲电路,还是解调电路。 要学会维修电器设备和设计电路,就必须熟练掌握各单元电路的原理。会划分功能块,能按照不同的功能把整机电路的元件进行分组,让每个功能块形成一个具体功能的元件组合,如基本放大电路,开关电路,波形变换电路等。 要掌握分析常用电路的几种方法,熟悉每种方法适合的电路类型和分析步骤。 1.交流等效电路分析法 首先画出交流等效电路,再分析电路的交流状态,即:电路有信号输入时,电路中各环节的电压和电流是否按输入信号的规律变化、是放大、振荡,还是限幅削波、整形、鉴相等。 2.直流等效电路分析法 画出直流等效电路图,分析电路的直流系统参数,搞清晶体管静态工作点和偏置性质,级间耦合方式等。分析有关元器件在电路中所处状态及起的作用。例如:三极管的工作状态,如饱和、放大、截止区,二极管处于导通或截止等。 3.频率特性分析法 主要看电路本身所具有的频率是否与它所处理信号的频谱相适应。粗略估算一下它的中心频率,上、下限频率和频带宽度等,例如:各种滤波、陷波、谐振、选频等电路。 4.时间常数分析法 主要分析由R、L、C及二极管组成的电路、性质。时间常数是反映储能元件上能量积累和消耗快慢的一个参数。若时间常数不同,尽管它的形式和接法相似,但所起的作用还是不同,常见的有耦合电路、微分电路、积分电路、退耦电路、峰值检波电路等。 最后,将实际电路与基本原理对照,根据元件在电路中的作用,按以上的方法一步步分析,就不难看懂。当然要真正融会贯通还需要坚持不懈地学习。 电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种 一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种是说明数字电子电路工作原理的。它用各种图形符号表示门、触发器和各种逻辑部件,用线条把它们按逻辑关系连接起来,它是用来说明各个逻辑单元之间的逻辑关系和整机的逻辑功能的。为了和模拟电路的电路图区别开来,就把这种图叫做逻辑电路图,简称逻辑图。 除了这两种图外,常用的还有方框图。它用一个框表示电路的一部分,它能简洁明了地说明电路各部分的关系和整机的工作原理。 一张电路图就好象是一篇文章,各种单元电路就好比是句子,而各种元器件就是组成句子的单词。所以要想看懂电路图,还得从认识单词——元器件开始。有关电阻器、电容器、电感线圈、晶体管等元器件的用途、类别、使用方法等内容可以点击本文相关文章下的各个链接,本文只把电路图中常出现的各种符号重述一遍,希望初学者熟悉它们,并记住不忘。 电阻器与电位器(什么是电位器) 符号详见图 1 所示,其中( a )表示一般的阻值固定的电阻器,( b )表示半可调或微调电阻器;( c )表示电位器;( d )表示带开关的电位器。电阻器的文字符号是“ R ”,电位器是“ RP ”,即在 R 的后面再加一个说明它有调节功能的字符“ P ”。

Extjs4.0.7 desktop基础搭建

Extjs4.0.7 desktop初级搭建 涉及内容:1.classes.js的拆分 2.App.js和Settings.js里代码的含义 3.桌面图标的换行 4.一些小小的修改 首先上官网上下载最新版本的Extjs,本次讲解以4.0.7版本为例,下载地址https://www.360docs.net/doc/5d15738470.html,/products/extjs/download/ext-js-4.0.7/1234 然后打开myeclipse新建一个web project工程,这个工程的结构如下 其中core文件夹用于存放desktop的核心代码 css文件夹用于存放样式表 ext文件夹用于存放ext-all.js等

images文件夹用于存放desktop实例中images modules文件夹用于存放桌面上显示的模块 resources文件夹用于存放desktop实例自带的壁纸文件夹wallpapers 和Extjs中resources下的themes文件夹 接下来把App.js,Settings.js和index.jsp(即desktop.html)放在webroot 目录下面 一.classes.js的拆分:首先来看一下index.jsp中的代码 extjs4 desktop

继电器控制电路模块及原理讲解

继电器控制电路模块及原理讲解 发布: 2011-9-8 | 作者: —— | 来源:huangguohai| 查看: 564次| 用户关注: 能直接带动继电器工作的CMOS集成块电路在电子爱好者认识电路知识的的习惯中,总认为CMOS 集成块本身不能直接带动继电器工作,但实际上,部分CMOS集成块不仅能直接带动继电器工作,而且工作还非常稳定可靠。本实验中所用继电器的型号为JRC5M-DC12V微型密封的继电器(其线圈电阻为750Ω)。现将CD4066CMOS集成块带动继电器的工作原理分析如下:CD4066是一个四双向模拟开关,集成块SCR1~SCR4为控制端,用于控制四双向模拟开关的 能直接带动继电器工作的CMOS集成块电路 在电子爱好者认识电路知识的的习惯中,总认为CMOS集成块本身不能直接带动继电器工作,但实际上,部分CMOS集成块不仅能直接带动继电器工作,而且工作还非常稳定可靠。本实验中所用继电器的型号为JRC5M-D C12V微型密封的继电器(其线圈电阻为750Ω)。现将CD4066CMOS集成块带动继电器的工作原理分析如下: CD4066是一个四双向模拟开关,集成块SCR1~SCR4为控制端,用于控制四双向模拟开关的通断。当SCR1接高电平时,集成块①、②脚导通,+12V→K1→集成块①、②脚→电源负极使K1吸合;反之当SCR1输入低电平时,集成块①、②脚开路,K1失电释放,SC R2~SCR4输入高电平或低电平时状态与SCR1相同。 本电路中,继电器线圈的两端均反相并联了一只二极管,它是用来保护集成电路本身的,千万不可省去,否则在继电器由吸合状态转为释放时,由于电感的作用线圈上将产生较高的反电动势,极容易导致集成块击穿。并联了二极管后,在继电器由吸合变为释放的瞬间,线圈将通过二极管形成短时间的续流回路,使线圈中的电流不致突变,从而避免了线圈中反电动势的产生,确保了集成块的安全。 低电压下继电器的吸合措施

extjs4.2更换主题

extjs4.2更换主题 目标 实现 1.视图层编辑各种主题样式 { iconCls : 'themeIcon', action : 'bbar_theme', text : '[更换皮肤]', menu : [{ xtype : 'menucheckitem', group : 'theme', checked : true, text : '蓝色经典', css : 'ext-all.css' },{ xtype : 'menucheckitem', group : 'theme', text : '钢铁战士', css : 'ext-all-gray.css' }] } 2.控制层获取更换主题事件修改主题并保存到Cookies中。 'view_layout_NorthView button[action=bbar_theme]' : { //设置主题render : function(btn,eOpts){ this.setTheme(btn); } }, /** *设置主题 **/

setTheme : function(btn){ var extTheme = zc.getCookie('extTheme');//获取当前主题 var items = btn.menu.items.items; Ext.each(items,function(item){ if(item.css == extTheme){ item.setChecked(true); return; } }); }, /** *更换主题 **/ changeTheme : function(item){ var linkid = 'extTheme'; var link = Ext.getDom(linkid);//获取CSS引用文件 var href = link.getAttribute('href');//获取href属性 var lastg = https://www.360docs.net/doc/5d15738470.html,stIndexOf('/') + 1;//最后一个/所在的位置 var oldcss = href.substring(lastg);//旧的主题样式 var newcss = item.css;//新的主题样式 if(oldcss != newcss){ href = href.substring(0, lastg) + newcss; link.setAttribute('href',href);//设置href属性 zc.setCookie(linkid,newcss,365);//保存到cookie中} } 3.在引用extjs 4.2样式文件时从Cookies中获取当前主题样式。 <% //获取cookie中设置的皮肤 String extTheme = "ext-all.css";//默认皮肤 Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { if (cookie.getName().equals("extTheme")) { extTheme = cookie.getValue(); break; } } } %>

开关电源入门必读:开关电源工作原理超详细解析

开关电源入门必读:开关电源工作原理超详细解析 第1页:前言:PC电源知多少 个人PC所采用的电源都是基于一种名为“开关模式”的技术,所以我们经常会将个人PC电源称之为——开关电源(Sw itching Mode P ow er Supplies,简称SMPS),它还有一个绰号——DC-DC转化器。本次文章我们将会为您解读开关电源的工作模式和原理、开关电源内部的元器件的介绍以及这些元器件的功能。 ●线性电源知多少 目前主要包括两种电源类型:线性电源(linear)和开关电源(sw itching)。线性电源的工作原理是首先将127 V或者220V市电通过变压器转为低压电,比如说12V,而且经过转换后的低压依然是AC交流电;然后再通过一系列的二极管进行矫正和整流,并将低压AC交流电转化为脉动电压(配图1和2中的“3”);下一步需要对脉动电压进行滤波,通过电容完成,然后将经过滤波后的低压交流电转换成DC直流电(配图1和2中的“4”);此时得到的低压直流电依然不够纯净,会有一定的波动(这种电压波动就是我们常说的纹波),所以还需要稳压二极管或者电压整流电路进行矫正。最后,我们就可以得到纯净的低压DC直流电输出了(配图1和2中的“5”) 配图1:标准的线性电源设计图

配图2:线性电源的波形 尽管说线性电源非常适合为低功耗设备供电,比如说无绳电话、PlayStation/W ii/Xbox等游戏主机等等,但是对于高功耗设备而言,线性电源将会力不从心。 对于线性电源而言,其内部电容以及变压器的大小和AC市电的频率成反比:也即说如果输入市电的频率越低时,线性电源就需要越大的电容和变压器,反之亦然。由于当前一直采用的是60Hz(有些国家是50Hz)频率的AC市电,这是一个相对较低的频率,所以其变压器以及电容的个头往往都相对比较大。此外,AC市电的浪涌越大,线性电源的变压器的个头就越大。 由此可见,对于个人PC领域而言,制造一台线性电源将会是一件疯狂的举动,因为它的体积将会非常大、重量也会非常的重。所以说个人PC用户并不适合用线性电源。 ●开关电源知多少 开关电源可以通过高频开关模式很好的解决这一问题。对于高频开关电源而言,AC输入电压可以在进入变压器之前升压(升压前一般是50-60KHz)。随着输入电压的升高,变压器以及电容等元器件的个头就不用像线性电源那么的大。这种高频开关电源正是我们的个人PC以及像VCR录像机这样的设备所需要的。需要说明的是,我们经常所说的“开关电源”其实是“高频开关电源”的缩写形式,和电源本身的关闭和开启式没有任何关系的。 事实上,终端用户的PC的电源采用的是一种更为优化的方案:闭回路系统(closed loop system)——负责控制开关管的电路,从电源的输出获得反馈信号,然后根据PC的功耗来增加或者降低某一周期内的电压的频率以便能够适应电源的变压器(这个方法称作PW M,Pulse W idth Modulation,脉冲宽度调制)。所以说,开关电源可以根据与之相连的耗电设备的功耗的大小来自我调整,从而可以让变压器以及其他的元器件带走更少量的能量,而且降低发热量。 反观线性电源,它的设计理念就是功率至上,即便负载电路并不需要很大电流。这样做的后果就是所有元件即便非必要的时候也工作在满负荷下,结果产生高很多的热量。 第2页:看图说话:图解开关电源 下图3和4描述的是开关电源的PW M反馈机制。图3描述的是没有PFC(P ow er Factor Correction,功率因素校正)电路的廉价电源,图4描述的是采用主动式PFC设计的中高端电源。 图3:没有PFC电路的电源 图4:有PFC电路的电源 通过图3和图4的对比我们可以看出两者的不同之处:一个具备主动式PFC电路而另一个不具备,前者没有110/220V转换器,而且也没有电压倍压电路。下文我们的重点将会是主动式PFC电源的讲解。

(完整版)子网划分与VLAN技术详解

子网划分与VLAN技术详解 子网划分 子网划分定义:Internet组织机构定义了五种IP地址,有A、B、C三类地址。A类网络有126个,每个A类网络可能有16777214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16777214个地址大部分没有分配出去。可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。 子网掩码 RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位置都为1,对应于主机地址的所有位都置为0。由此可知,A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即“/<网络地址位数>”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。 路由器判断IP 子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。例如,有两台主机,主机一的IP 地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。 主机一 222.21.160.6即:11011110.00010101.10100000.00000110 255.255.255.192即:11111111.11111111.11111111.11000000 按位逻辑与运算结果为:11011110.00010101.10100000.00000000 主机二 222.21.160.73 即:11011110.00010101.10100000.01001001 255.255.255.192即:11111111.11111111.11111111.11000000 按位逻辑与运算结果为:11011110.00010101.10100000.01000000 两个结果不同,也就是说,两台主机不在同一网络,数据需先发送给默认网关,然后再发送给主机二所在网络。那么,假如主机二的子网掩码误设为255.255.255.128,会发生什么情况呢? 让我们将主机二的IP地址与错误的子网掩码相“与”: 222.21.160.73 即:11011110.00010101.10100000.01001001 255.255.255.128即:11111111.11111111.11111111.10000000 结果为11011110.00010101.10100000.00000000 这个结果与主机一的网络地址相同,主机一与主机二将被认为处于同一网络中,数据不

修辞手法的讲解

小升初修辞手法 ★小学阶段修辞方法有:比喻、拟人、夸张、排比、反问、设问、对比、对偶、引用、双关1、比喻:就是打比方,是利用根本不同的两种事物之间的相似点作比的修辞手法。基本结构:本体+比喻词+喻体。常用的比喻词有:好像仿佛像……似的如同成了宛如比喻由三部分构成1、本体2、喻体3、比喻词 (比喻和拟人最大的不同在于比喻含有喻体,拟人没有。) 作用:将表达的内容说得生动具体形象,给人以鲜明深刻的印象,根据事物的相似点,用具体、浅显、常见的事物对深奥生疏的事物解说,即打比方,帮助人深入理解。 例句:活跃了一天的太阳,依旧像一个快乐的孩童。 比喻一般分为三种:明喻、暗喻、借喻。 (1)明喻是本体、喻体、比喻词都出现。如:共产党像太阳。 (2)暗喻是本体、喻体都出现,比喻词常用“是、变成、成了、构成”等。如:弟弟成了泥了。 (3)借喻是借用喻体代替本体,即只出现喻体,本体和比喻词均不出现。如:落光了叶子的柳树上挂满了毛茸茸、亮晶晶的“银条儿”。 例:在阳光的照耀下,漫山的山茶花仿佛千万颗红星在闪闪发光。 2、拟人:把物当做人写,赋予物以人的思想、感情、活动,用描写人的词来描写物。 作用:使具体事物人格化,语言生动形象有趣。 例句: 1.桃树、杏树、梨树、你不让我,我不让你,都开满了花赶趟儿。 2.感时花溅泪,恨别鸟惊心。《春望》杜甫 3.太阳的脸红起来了。《春》朱自清 拟人有两种类型:一是把事物直接当做人来描写。如:古老的威尼斯又沉沉地入睡了;二是人直接同事物说话。如:延安,你的精神灿烂辉煌!如果一旦失去了你啊,那就仿佛没有了灵魂,怎能向美好的未来展翅飞翔 例:淘气的小闹钟每天准时把我叫醒。 3、夸张:对事物的性质,特征等故意地夸张或缩小。是一种对事物作"言过其实"的描述的修辞手法。 作用:提示事物本质,烘托气氛,加强渲染力,引起联想效果。 例句:柏油路晒化了,甚至铺户门前的铜牌好像也要晒化。只能看到巴掌大的一块天地。她还没有端酒怀,就醉了。 夸张可分为三类,即扩大夸张、缩小夸张和超前夸张。

子网的划分经典例题解析

1个C类地址,地址段为192.168.8.0/24,划分8个子网主机数5,5,13,25,24,26,48,50。请划分子网和子网掩码? 首先明确一点,子网中最大主机数都是2的倍数,因为是【0000 0000】--【1111 1111】,所以一个子网的最大主机个数为2,4,8,16,32,64,128……(就是2的1次方,2的2次方,以此类推) 明白上面一点后按照题目要求,找到题目中主机数与上述最大主机数最接近的两个中较大的一个: 举例说,48这个主机数,和他最接近的应该是32和64,那么我们要取64就可以了。(如果比他小,那岂不是这48个主机要分成两个子网了么) 按照上面的方法,列出题目中给出主机数对应的最大主机数对照表 对照上述表格可以看出,A-F把最大子网数相加为128,G-H相加也是128,刚好是256/2的结果 所以首先要分成两个大的子网128个主机一个子网 192.168.8.0000 0000 192.168.8.0/25 192.168.8.1000 0000 192.168.8.128/25 那G和H就好办了,64=128/2,所以G和H就是上面两个子网任意取其中一个,再分成一半分别给G和H就好了比如我们取第一行192.168.8.0/25段给G和H: G:192.168.8.0000 0000 192.168.8.0/26 H:192.168.8.0100 0000 192.168.8.64/26 剩下的就是A-F了 A+B+C的子网数是32,和DEF的子网数相等,这样就是4个32主机数的子网了 所以,我们把上面第二行的子网192.168.8.128/25再分成4个32主机数的子网好了 4个子网,就是要有4中变化,用二进制表示就00 ,01,10,11 ;所以,4个子网如下 A-C:192.168.8.1000 0000 192.168.8.128/27 D: 192.168.8.1010 0000 192.168.8.160/27

ExtJS 配置和表格控件使用

ExtJS 配置和表格控件使用 ExtJS是一套AJAX控件,本人认为,它是目前我见过最好最美的JS控件库,所以非常有学习和使用价值,如果你还没有接触过ExtJS或者压根对其不感兴趣,那么没有必要看下去了。 ExtJS是一套完整的RIA解决方案,也因为功能完整造成了ext-all.js有400多k,由于是基于JS和CSS的功能实现,对客户端机器性能也有一定的要求,即不支持IE6以下的版本。如果您的项目对网页响应时间有严格的限制,或者客户端操作系统过于陈旧,一定不要选择ExtJS。 本文主要是介绍ExtJS的下载和配置以及一些简单的使用方法。目前最新版本为 3.0,但是本文主要介绍2.2版本。 一、 ExtJS下载以及配置 1、下载地址:https://www.360docs.net/doc/5d15738470.html,/(这是官网,大家可以选择自己喜欢的版本下载) 2、配置过程,假设下载后的目录为Ext,我们在该目录下建立我们自己的目录MyExample(该目录用于存放你自己写的代码),配置过程如下: (1) 新建一个页面文件Helloworld.html (2) 在和之间添加如下代码: 代码如下: (3) 这里注意不能用取代 (4) js的导入顺序不要更改 (3) 如果弹出一个HelloWorld的对话框,则代表配置成功。 二、表格控件Grid 的使用 EXT中的表格功能非常强大,包括排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等使用功能。我们首先介绍如何制作一个简单的Grid。 1、创建表格的列信息: 代码如下: var cm=new Ext.grid.ColumnModel([ {header:'编号',dataIndex:'id'},

语文各种修辞手法的详解

小学语文修辞手法的详解 修辞方法不只是小学语文非常重要的基础知识,而且这一知识点的掌握好与坏直接关系到作文这一重要的知识,所以绝 不能忽视。 什么是修辞手法: 修辞手法,就是通过修饰、调整语句,运用特定的表达形式以提高语言表达作用的方式或方法,使语言表达得准确、鲜明而生动有力。 语文中的修辞手法: 比喻、拟人、夸张、排比、对偶、借代、反问、设问、对比、反复、双关、引用、反语、联想、通感、顶真、互文、回环、移情、拈连、象征、寄寓(寄托),呼告等。 常用的八种修辞手法: 比喻、拟人、夸张、排比、对偶、借代、反问、设问。

一、比喻: 1、什么是比喻 比喻就是“打比方”,即利用不同事物之间的某些相似之处,用一个事物来比方另一个事物。多用一些具体的,浅显的、熟知的事物来说明抽象的、深奥的、生疏的事物。其中比喻可以分为:明喻、暗喻、借喻、博喻(又名复喻)、倒喻(又名逆喻)、反喻、互喻(又名回喻)、较喻(可分为强喻,弱喻)、譬喻、饰喻、引喻、隐喻。 2、比喻必须具备的三个要素 (1)本体:即被比方的事物; (2)喻体:即用来作比方的事物; (3)比喻词:用来表示比喻关系的词。常见的比喻词 主要有:像、好像、若、似、似的、似乎、好似、恰似、如、犹如、有如、仿佛、好比、一样、成了、是、变成等。 3、如何判断一个句子是否是比喻句 虽然有些句子含有上述比喻词,但未必就是比喻句。判断一个句子是否是比喻句,除判断句子是否有三个要素以外,还要重点注意: 本体和喻体必须是本质不同的事物。

4、典型例句 (1)桂林的山真秀啊,像翠绿的屏障,像新生的竹笋,色彩明丽,倒映水中。《(桂林山水)》 (2)小兴安岭一年四季景色诱人,是一座美丽的大花园,也是一座巨大的宝库。《美丽的小兴安岭》 二、拟人: 1、什么是拟人 把物当做人写,赋予物以人的动作、行为、思想、语言、感情、活动,用描写人的词来描写物。 2、判断要点: 描写人的词来描写物。 3、拟人的作用 作用:把禽兽鸟虫花草树木或其他无生命的事物当成人写,使具体事物人格化,语言生动形象。将什么赋予生命,生动形象地写出某事物某特征,表达作者某情感。 4、典型例句 (1)风儿轻轻地唱着歌,唤醒了沉睡中的大地。

EXTjs组件

组件 每个ExtJS应用程序都是由一或多个称为组件(components)的部件(widgets)组成的.所有的组件都是https://www.360docs.net/doc/5d15738470.html,ponent的子类,https://www.360docs.net/doc/5d15738470.html,ponent包含自动化生命周期管理的功能,如创建、渲染、尺寸控制、定位和销毁等,因此所有组件都自动拥有这些功能。ExtJS提供了非常多可直接使用的组件,并且从这些组件继承并扩展自己的自定义组件也是很容易的一件事情。 组件层次结构 容器(Container)是一种可以包含其他组件的特殊组件。一个典型的应用程序是由许多按树状机构嵌套在一起的组件组成的,称之为组件层次结构。容器负责管理子组件的生命周期,包括子组件的创建、渲染、尺寸控制、定位和销毁。一个典型的应用程序组件层次结构一般使用Viewport作为顶级容器,它的子元素可以包含其他嵌套的容器或者非容器组件:

容器的items属性配置用来添加子组件。以下这个例子使用Ext.create创建了两个Panel,然后将这两个Panel作为子组件添加到一个Viewport中: 容器使用布局管理器(LayoutManagers)来管理容器中子组件的尺寸和定位。

XType(组件类型)和延迟实例化 每个组件都有一个用来表示类型的名字,称为xtype。例如,组件Ext.panel.Panel的xtype为'panel'。上面那个例子展示了如何添加已经创建好的组件到容器中。如果在容器的子元素(items)配置中,为子元素指定xtype,子元素不会马上实例化,而是由容器决定子元素何时该实例化。例如:一个使用到TabPanel(选项卡)的应用程序,选项卡的每一tab页只有在用户单击的时候才会去渲染。 下面的示例代码中每个tab页都会监听各自的渲染完成(rendered,在渲染结束后触发)事件,在渲染后弹出提示。运行这个示例马上会弹出一个提示,那是因为运行后默认tab页被渲染并立即呈现在容器中了。第二tab页的提示不会弹出,只有你单击了第二页,它才会实例化并呈现。这说明了tab页会按需进行实例化和渲染。

详细讲解MOS管工作原理

详细讲解MOSFET管驱动电路 在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1,MOS管种类和结构 MOSFET管是FET的一种(另一种是JFET),可以被制造成增强型或耗尽型,P沟道或N沟道共4种类型,但实际应用的只有增强型的N沟道MOS管和增强型的P沟道MOS管,所以通常提到NMOS,或者PMOS指的就是这两种。 至于为什么不使用耗尽型的MOS管,不建议刨根问底。 对于这两种增强型MOS管,比较常用的是NMOS。原因是导通电阻小,且容易制造。所以开关电源和马达驱动的应用中,一般都用NMOS。下面的介绍中,也多以NMOS为主。 MOS管的三个管脚之间有寄生电容存在,这不是我们需要的,而是由于制造工艺限制产生的。寄生电容的存在使得在设计或选择驱动电路的时候要麻烦一些,但没有办法避免,后边再详细介绍。 在MOS管原理图上可以看到,漏极和源极之间有一个寄生二极管。这个叫体二极管,在驱动感性负载(如马达),这个二极管很重要。顺便说一句,体二极管只在单个的MOS管中存在,在集成电路芯片内部通常是没有的。 2,MOS管导通特性 导通的意思是作为开关,相当于开关闭合。

NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以了。 PMOS的特性,Vgs小于一定的值就会导通,适合用于源极接VCC 时的情况(高端驱动)。但是,虽然PMOS可以很方便地用作高端驱动,但由于导通电阻大,价格贵,替换种类少等原因,在高端驱动中,通常还是使用NMOS。 3,MOS开关管损失 不管是NMOS还是PMOS,导通后都有导通电阻存在,这样电流就会在这个电阻上消耗能量,这部分消耗的能量叫做导通损耗。选择导通电阻小的MOS管会减小导通损耗。现在的小功率MOS管导通电阻一般在几十毫欧左右,几毫欧的也有。 MOS在导通和截止的时候,一定不是在瞬间完成的。MOS两端的电压有一个下降的过程,流过的电流有一个上升的过程,在这段时间内,MOS管的损失是电压和电流的乘积,叫做开关损失。通常开关损失比导通损失大得多,而且开关频率越快,损失也越大。 导通瞬间电压和电流的乘积很大,造成的损失也就很大。缩短开关时间,可以减小每次导通时的损失;降低开关频率,可以减小单位时间内的开关次数。这两种办法都可以减小开关损失。 4,MOS管驱动 跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压高于一定的值,就可以了。这个很容易做到,但是,我们还需要速度。 在MOS管的结构中可以看到,在GS,GD之间存在寄生电容,而MOS管的驱动,实际上就是对电容的充放电。对电容的充电需要一个电流,因为对电容充电瞬间可以把电容看成短路,所以瞬间电流会比较大。选择/设计MOS管驱动时第一要注意的是可提供瞬间短路电流的大小。

小学语文修辞手法详细讲解

For personal use only in study and research; not for commercial use 小学语文修辞手法详细讲解 1、比喻:就是打比方,指用具体的、浅显的、人们比较熟悉的事物去表现抽象的、难懂 的、人们少见的事物的一种修辞方法。 比喻由本体、比喻词、喻体三部分构成。本体和喻体两种事物之间必须在某一方面有相 似之处但又不同类,比喻词常用的有“好像、像……一样(似的)、仿佛、是、成了”等。 例:在阳光的照耀下,漫山的山茶花仿佛千万颗红星在闪闪发光。 2、拟人:就是把人以外的事物当作人来写,使它像人一样会说话、有感情、做人的动 作。 nyp内环式高粘度泵 例:淘气的小闹钟每天准时把我叫醒。 3、排比:就是有三个或三个以上结构相似、相同或意思相关,字数大致相等,语气一 致的句子排列在一起的。(一般有相同的字眼为标志。) 例:学好了语文,我们才会读书看报,才会写信写日记,才会写作文。NYP转子泵 4、夸张:就是为了突出某一事物,有意把事物的形态、特征、作用进行扩大或缩小来 描述。例:在巴掌大的监狱里,同志们照常锻炼身体。 5、反问:用疑问的形式来表达肯定的意思的一种修辞方法。无疑而问,不需回答。多 用“难道、怎能、怎么”等词作反问词。 例:(1)作为一个小学生,怎能不努力学习呢?高粘度齿轮泵 6、设问:就是有针对性提出一个问题,然后把自己的看法谈出来。实际上就是自问自 答。 例:我能被中条山的风吓倒吗?不能,绝对不能。 7、对偶:指用结构相同、字数相等、意思相关或相反的两组句子组成对句的一种修辞 方法。(对联一般采用对偶的写法,还有一些古诗句也运用了对偶的写法。)例1:风声雨声读书声,声声入耳;家事国事天下事,事事关心。LC型罗茨泵

划分子网例题详细解析

划分子网例题详细解析 例题一、IPv4地址位202.112.14.137 ,子网掩码为 255.255.255.224,所在的子网的网络地址和广播地址是什么。 分析:根据子网掩码255.255.255.224得出该子网的主机ID分布在IPv4 的最后一个字节里, 各个地址块的大小为:1 (256-255).1(256-255).1(256-255).32(256-224) 而起着关键作用的是包含主机ID中的第一个字节,包含主机ID 的是第四个字节,地址块是32,可以知道各个网段该字节的取值范围为:0 - 31 、32-63、64-95、96-127、128-159……而202.112.14.137在第5个网段上,202.112.14.128 202.112.14.159 广播地址:202.112.14.159 网络地址:202.112.14.128 例题二、有一个IP地址范围10001100 00010001 10101010 0~255,这是一个B类IP地址,可以表示2的16次方台主机,现将该IP地址分给4个子公司,a公司有8000台电脑,b公司有1600台电脑,c公司有2700台电脑,d公司有6000台电脑,请问怎样分配,请给出每个公司的mask地址。 从大到小一个一个切,2的10次方是1024,10位主机号的子网容纳主机=1024-2=1022个,依次类推,容纳8000台的要13位主机号,容纳6000的也要13位主机号,容纳2700的要12位主机号,

容纳1600的要12位主机号。 如果允许全0和全1子网的话,B类可以划分为8个13位主机号的子网。取第一个和第二个子网给8000和6000,再取第三个子网划分为2个12位主机,分别给2700和1600的就OK了。

《电路原理》练习题及详细解析答案

第一章“电路模型和电路定律”练习题 1-1说明题1-1图(a)、(b)中:(1)u、i的参考方向是否关联?(2)ui乘积表示什么功率? (3)如果在图(a)中u>0、i<0;图(b)中u>0、i>0,元件实际发出还是吸收功率? (a)(b) 题1-1图 解:(1)题1-1图(a),u、i在元件上为关联参考方向。题1-1图(b)中,u、i在元件上为非关联参考方向。 (2)题1-1图(a)中,P=ui表示元件吸收的功率。题1-1图(b)中,P=ui表示元件发出的功率。 (3)题1-1图(a)中,P=ui<0表示元件吸收负功率,实际发出功率。题1-1图(b)中,P=ui>0,元件实际发出功率。 1-4 在指定的电压u和电流i的参考方向下,写出题1-4图所示各元件的u和i的约束方程(即VCR)。 (a)(b)(c) (d)(e)(f) 题1-4图 解:(1)题1-4图(a)中,u、i为非关联参考方向,u=10×103i。(2)题1-4图(b)中u、i为非关联参考方向,u=-10i。 (3)题1-4图(c)中u与电压源的激励电压方向相同u= 10V。(4)题1-4图(d)中u 与电压源的激励电压方向相反u= -5V。(5)题1-4图(e)中i与电流源的激励电流方向相同i=10×10-3A。(6)题1-4图(f)中i与电流源的激励电流方向相反i=-10×10-3A。 1-5 试求题1-5图中各电路中电压源、电流源及电阻的功率(须说明是吸收还是发出)。 (a)(b)(c) 题1-5图

解:题1-5图(a)中流过15V电压源的2A电流与激励电压15V为非关联参考方向,因此,电压源发出功率PU发=15×2W=30W; 2A电流源的端电压为UA=(-5×2+15)=5V, 此电压与激励电流为关联参考方向,因此,电流源吸收功率PI吸=5×2W=10W; 电阻消耗功率PR=I2R=22×5W=20W,电路中PU发=PI吸+PR功率平衡。 题1-5图(b)中电压源中的电流IUS=(2-5/15)A=-1A,其方向与激励电压关联,15V的电压源吸收功率PUS吸=15×(-1A)=-15W 电压源实际发出功率15W。 2A电流源两端的电压为15V,与激励电流2A为非关联参考方向, 2A电流源发出功率PIS 发=2×15=30W 电阻消耗功率PR=152/5=45W,电路中PUS+PR=PIS发功率平衡。 题1-5图(c)中电压源折中的电流IUS=(2+15/5)A=5A方向与15V激励电压非关联,电压源发出功率PUS发=5×15=75W。 电流源两端的电压为15V,与激励电流2A为关联参考方向,电流源吸收功率PIS吸=2×15=30W, 电阻消耗功率PR=152/5=45W,电路中PUS发=PIS吸+PR功率平衡。 1-16 电路如题1-16图所示,试求每个元件发出或吸收的功率。 I 1 (a)(b) 题1-16图 解:题1-16图(a)中,应用KVL可得方程: -U+2×0.5+2U=0 解得: U=-1V 电流源电压U与激励电流方向为非关联,因此电流源发出功率为: PIS发=-1×0.5=-0.5W(实际吸收功率)。 电阻功率为: PR=0.52×2=0.5W VCVS两端的电压2U与流入电流方向关联,故吸收功率为 PUS吸=2U×0.5=-1W(实际发出功率)。 显然,PIS发=PUS吸+PR 题1-16图(b)中,在结点A应用KCL可得: I2=I1+2I1-3I1 再在左侧回路应用KVL可得: 2I1+3I1=2 解得: I1=0.4A 根据各电流、电压方向的关联关系,可知,电压源发出功率为: PUS发=2I1=0.8W CCCS发出功率为:

相关文档
最新文档