扩展线(可修改)
- 格式:pptx
- 大小:1.77 MB
- 文档页数:11
CAD扩展工具(Express Tools)主要命令及其功能介绍AutoCAD提供了不少好用的扩展工具,在安装的时候注意要选上Express Tool,这些工具才能装上,低版本的安装中有些叫Bonus。
有些国产CAM扩展工具比AutoCAD 更丰富,例如浩辰CAD不仅几乎有AutoCAD全部的扩展工具,还有根据用户的提出需求增加的几十种工具。
CAD勺扩展工具分为几大类:图层管理、图块编辑、文字编辑、标注编辑、文件管理、特殊绘图工具等等,有些工具非常方便,可以有效提高你的操作效率。
在后期的版本中,有些扩展工具的功能逐步变成了常规功能,例如图层工具现在在格式菜单中也能调用,云线、区域覆盖( wipeout )、快速引线等功能已经成为基本绘图命令,放到常规功能菜单中去了。
下面简单介绍一下一些常用的功能。
图层工具:很多已经是CAD的基本命令,但很多命令,大家还没怎么用过。
LMA N图层状态管理器,可以将图层的状态保存起来,随时进行切换。
也可以将图层状态写入文件或从文件中加载文件LAYMC:图层匹配,可以将对象的图层匹配为其他对象的图层。
LAYCU:R 设置为当前层,将选择对象移动到当前层上。
LAYISO图层隔离,点选或框选对象,只显示选择对象的图层,将其他图层关闭,可以简化图形,方便操作LAYFRZ图层冻结,选择一个或多个对象,冻结对象所在图层LAYOFF 关闭图层,选择一个或多个对象,关闭对象所在图层LAYLCK锁定图层,选择一个或多个对象,锁定对象所在图层LAYULK图层解锁,选择一个或多个对象,解除对象所在图层的锁定LAYON 打开所有图层,将所有被关闭的图层打开LAYTHW图层解冻,将所有被冻结的图层解冻文字工具:TEXTFIT:文字拟合,设置文字的宽度,压缩或拉伸文字TEXTMASK文字遮罩,可以生成遮罩来遮挡文字后面的重叠对象CHT文字批量修改,可以批量修改多个文字的各种特性TXTEXP文字分解,将文字分解为图形对象,如果文字是作为设计的一部分,可以使用这种功能将文字炸开成线,避免在不同的环境下打开文字发生变化。
PCI ExpressPCI Express ,简称PCI-E ,是电脑总线PCI 的一种,它沿用了现有的PCI 编程概念及通讯标准,但建基于更快的串行通信系统。
英特尔是该接口的主要支援者。
PCIe 仅应用于内部互连。
由于PCIe 是基于现有的PCI 系统,只需修改物理层而无须修改软件就可将现有PCI 系统转换为PCIe 。
PCIe 拥有更快的速率,以取代几乎全部现有的内部总线(包括AGP 和PCI )。
英特尔希望将来能用一个PCIe 控制器和所有外部设备交流,取代现有的南桥/北桥方案。
除了这些,PCIe 设备能够支援热拔插以及热交换特性,支援的三种电压分别为+3.3V 、3.3Vaux 以及+12V 。
考虑到现在显卡功耗的日益增加,PCIe 而后在规范中改善了直接从插槽中取电的功率限制,16x 的最大提供功率达到了75W ,比AGP 8X 接口有了很大的提升。
基本可以满足当时(2004年)中高阶显卡的需求。
这一点可以从AGP 、PCIe 两个不同版本的6600GT 显卡上就能明显地看到,后者并不需要外接电源。
PCIe 只是南桥的扩展总线,它与操作系统无关,所以也保证了它与原有PCI 的兼容性,也就是说在很长一段时间内在主板上PCIe 接口将和PCI 接口共存,这也给用户的升级带来了方便。
由此可见,PCIe 最大的意义在于它的通用性,不仅可以让它用于南桥和其他设备的连接,也可以延伸到芯片组间的连接,甚至也可以用于连接图形芯片,这样,整个I/O 系统重新统一起来,将更进一步简化计算机系统,增加计算机的可移植性和模块化。
历史在2001年的春季英特尔开发者论坛(IDF )上Intel 公布了取代PCI 总线的第三代I/O 技术,被称为“3GIO ”。
该总线的规范由Intel 支持的AWG (Arapahoe Work Group )负责制定。
2002年4月17日,AWG 正式宣布3GIO 1.0规范草稿制定完毕,移交PCI 特殊兴趣组织(PCI-SIG )进行审核,2002年7月23日经过审核后正式公布,改名为“PCI Express ”,并根据开发蓝图2006年正式推出Spec2.0(2.0规范)。
PS2键盘扩展线1 概述本设备可将计算机的一个PS2键盘接口扩展为两个PS2接口,使其可同时连接两个普通PS2键盘,(普通键盘或者自制键盘、薄膜键盘等,只要符合PS2键盘接口协议均可)。
主要应用场合为工控行业、彩票行业、超时收银机等需要两个键盘的场合。
2 工作原理该设备内嵌一片高性能单片机,该单片机模拟出两个PS2键盘输入接口,可用来连接两个PS2键盘,同时模拟出一个PS2输出接口,用于接计算机的PS2键盘接口;具体工作时,由单片机负责接收两个键盘的信号并转发给计算机,同时处理计算机发出的键盘指令,并自动应答计算机的指令;对于计算机发出的键盘参数配置指令,比如键盘指示灯控制指令,该设备在自动应答的同时,会将配置指令转发给两个键盘;目前为止,为了处理方便,配置指令仅支持指示灯配置,其他指令因为应用极少,暂不支持。
设备的其他特点:实时性:由于是单片机模拟扩展键盘接口,需要将键盘的指令接收之后转发给计算机,因此在时间上会有一定的延迟,此延迟范围在1ms~10ms之间,根据实际测试的效果,此延迟不会对键盘使用者的使用感觉造成影响。
可靠性:该设备硬件部分均采用高性能的工业级元器件,可在各种恶劣的工作环境中使用;软件方面通过严格测试以及长期试用,未发现有误码以及丢码的情况发生,可靠性可以保证。
兼容性:设备兼容性好,输入端可连接PS2协议兼容的各种品牌键盘以及自制键盘薄膜键盘等,目前未发现有不兼容的产品;输出端,可以直接连各种计算机的PS2键盘接口,亦可与目前市面上出售的各种PS2转USB的转接线链接,转为USB键盘,目前市面上的各种高、低端转接线大部分都可以支持。
3 设备实物图片4 其他在此设备的硬件基础上,通过修改内嵌软件,即可使其成为客户定制的其他键盘类设备或者内嵌使用的模块。
AutoCAD中的扩展字典及扩展记录(C#)在学习CAD扩展记录的过程中,遇到了⼀些问题,也积累了⼀些经验,现在给⼤家分享⼀些我的学习⼼得。
在学习扩展字典之前需要读者了解cad的组码,也就是DxfCode。
感兴趣的也可以了解⼀下扩展数据的相关内容(后⾯有时间也会分享⼀下,因为扩展数据、扩展字典和DxfCode组码之间有密切的关系)。
⼀个CAD对象只能拥有⼀个扩展字典,⽽扩展字典下⾯可以包含多个扩展记录。
打个⽐⽅,可以这么理解,如果扩展字典相当于excel⽂件,那么⼀个扩展记录就相当于excel中的⼀个表单sheet对象,扩展记录中存储的数据就相当于表单sheet中的数据。
使⽤扩展记录可以向对象中保存⼀些属性数据,以便后续提取之⽤,这是很有⽤的。
⽐如说可以向⼀个多段线(代表⼀根管线,或是其他)中存储⼀些施⼯⽅⾯的数据信息,例如施⼯标段、桩号范围、施⼯完成时间等,以后再打开图的时候,就知道这段管线是哪个施⼯单位施⼯的,什么时间完成的等等,便于查看和统计。
CAD程序⾃⾝的属性对话框是⽆法记录这些信息的。
向对象添加扩展记录⼀般分为三个步骤:1 将添加的数据构成⼀个类2 编写扩展⽅法,包括扩展记录的添加、读取、删除、修改3 调⽤扩展⽅法进⾏操作界⾯如下:下⾯列出主要的代码1 将需要添加的数据构成⼀个类,主要包括施⼯标段、信息、桩号、完成时间等属性1public class XDataClass2 {3public string BiaoDuan { get; set; }//施⼯标段4public string Information { get; set; }//附加到对象上的信息5public double StationStart { get; set; }//起始桩号6public double StationEnd { get; set; }//终⽌桩号7public double Length { get; private set; }//长度8public DateTime OverTime { get; set; }//完成时间9public string XRecordName { get; set; } //扩展记录名称10public XDataClass() { }11public XDataClass(string xrecordName)12 {13 XRecordName = xrecordName;14 }15///<summary>16///将扩展数据实体类转化成typevaluelist类型17///</summary>18///<param name="xdataClass"></param>19///<returns></returns>20public static TypedValueList ClassToTypeValueList(XDataClass xdataClass)21 {22 TypedValueList tvList = new TypedValueList23 {24 {DxfCode.Text, xdataClass.BiaoDuan },25 {DxfCode.Text, rmation },26 {DxfCode .Real ,xdataClass.StationStart },27 {DxfCode.Real ,xdataClass .StationEnd },28 {DxfCode.Text ,xdataClass .OverTime .ToString ("d") },29 {DxfCode.Text ,xdataClass.XRecordName },30 };31return tvList;32 }33///<summary>34///将typevaluelist类型的数据转换成实体类35///</summary>36///<param name="list"></param>37///<returns></returns>38public static XDataClass TypeValueListToClass(TypedValueList list)39 {40 XDataClass xdataClass = new XDataClass()41 {42 BiaoDuan = list[0].Value.ToString(),43 Information = list[1].Value.ToString(),44 StationStart = Convert.ToDouble(list[2].Value),45 StationEnd = Convert.ToDouble(list[3].Value),46 OverTime = Convert.ToDateTime(list[4].Value),47 XRecordName = list[5].Value.ToString(),48 Length = Math.Abs(Convert.ToDouble(list[3].Value) - Convert.ToDouble(list[2].Value))49 };50return xdataClass;51 }52 }2 编写扩展⽅法,包括扩展记录的添加、读取、删除、修改1#region对象的扩展记录的添加、删除、修改2///<summary>3///添加扩展记录,如果没有扩展字典,那就创建扩展字典4///</summary>5///<param name="objId">对象的objectid</param>6///<param name="xRecordSearchKey">扩展记录名称</param>7///<param name="values">扩展记录的内容</param>8///<returns></returns>9public static bool AddXRecordToObj(this ObjectId objId, string xRecordSearchKey, TypedValueList values)10 {11//添加扩展记录之前,先创建对象的扩展字典12 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开13if (obj.ExtensionDictionary.IsNull)//如果对象⽆扩展字典,那就给创建14 {15 obj.UpgradeOpen();//切换对象为写的状态16 obj.CreateExtensionDictionary();//为对象创建扩展字典,⼀个对象只能拥有⼀个扩展字典17 obj.DowngradeOpen();//将对象切换为读的状态18 }19//打开对象的扩展字典20 DBDictionary dict = obj.ExtensionDictionary.GetObject(OpenMode.ForRead) as DBDictionary;21//如果扩展字典中已包含指定的扩展记录对象22if (dict.Contains(xRecordSearchKey))23 {24return false;//如果包含有指定的扩展记录,那就退出25 }26else//若没有包含扩展记录,则创建⼀个27 {28 Xrecord xrec = new Xrecord();//为对象创建⼀个扩展记录29 xrec.Data = values;//指定扩展记录的内容,这⾥⽤到了⾃定义类型转换,TypedValueList-->ResultBuffer30 dict.UpgradeOpen();//将扩展字典切换为写的状态,以便添加⼀个扩展记录31 ObjectId xrecId = dict.SetAt(xRecordSearchKey, xrec);//在扩展字典中加⼊新建的扩展记录,并指定它的搜索关键字32 objId.Database.TransactionManager.AddNewlyCreatedDBObject(xrec, true);33 dict.DowngradeOpen();//将扩展字典切换为读的状态34return true;35 }36 }3738///<summary>39///⽤于替换扩展字典中的整个⼀条扩展记录40///</summary>41///<param name="objId">对象id</param>42///<param name="xRecordSearchKey">扩展记录的名称</param>43///<param name="values">扩展记录的内容</param>44public static bool ModObjXrecord(this ObjectId objId, string xRecordSearchKey, TypedValueList values)45 {46 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开对象47 ObjectId dictId = obj.ExtensionDictionary;//获取对象的扩展字典id48if (dictId.IsNull)49 {50return false;//若对象没有扩展字典,则返回51 }52//如果对象有扩展字典,则以读的⽅式打开53 DBDictionary dict = dictId.GetObject(OpenMode.ForRead) as DBDictionary;54if (!dict.Contains(xRecordSearchKey))55 {56return false;//如果扩展字典中没有包含指定关键字的扩展记录,则返回;57 }58 ObjectId xrecordId = dict.GetAt(xRecordSearchKey);//获取扩展记录的id59 Xrecord xrecord = xrecordId.GetObject(OpenMode.ForWrite) as Xrecord;60 xrecord.Data = values;//覆盖原来的数据,因为values有了新的指向61 xrecord.DowngradeOpen();//将扩展记录切换为读的状态62return true;63 }6465///<summary>66///获取对象的扩展字典中的扩展记录67///</summary>68///<param name="objId">对象的id</param>69///<param name="xRecordSearchKey">扩展记录名称</param>70///<returns></returns>71public static TypedValueList GetObjXrecord(this ObjectId objId, string xRecordSearchKey)72 {73 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开对象74 ObjectId dictId = obj.ExtensionDictionary;//获取对象的扩展字典的id75if (dictId.IsNull)76 {77//MessageBox.Show("没有扩展字典");78return null;//若对象没有扩展字典,则返回null79 }80 DBDictionary dict = dictId.GetObject(OpenMode.ForRead) as DBDictionary;//获取对象的扩展字典81if (!dict.Contains(xRecordSearchKey))82 {83return null;//如果扩展字典中没有包含指定关键字的扩展记录,则返回null;84 }85//先要获取对象的扩展字典或图形中的有名对象字典,然后才能在字典中获取要查询的扩展记录86 ObjectId xrecordId = dict.GetAt(xRecordSearchKey);//获取扩展记录对象的id87 Xrecord xrecord = xrecordId.GetObject(OpenMode.ForRead) as Xrecord;//根据id获取扩展记录对象88 TypedValueList values = xrecord.Data;89return values;//values 数组应该是有先后顺序的90 }9192///<summary>93///⽤于删除对象扩展字典中的指定的扩展记录94///</summary>95///<param name="objId">对象id</param>96///<param name="xRecordSearchKey">扩展记录名称</param>97public static bool DelObjXrecord(this ObjectId objId, string xRecordSearchKey)98 {99 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开对象100 ObjectId dictId = obj.ExtensionDictionary;//获取对象的扩展字典id101if (dictId.IsNull)102 {103return false;//若对象没有扩展字典,则返回104 }105//如果对象有扩展字典,则以读的⽅式打开106 DBDictionary dict = dictId.GetObject(OpenMode.ForRead) as DBDictionary;107if (dict.Contains(xRecordSearchKey))//如果扩展字典中包含指定关键字的扩展记录,则删除;108 {109 dict.UpgradeOpen();//切换为写的状态110 dict.Remove(xRecordSearchKey);//删除扩展记录111 dict.DowngradeOpen();//切换为读的状态112 }113return true;114 }115116///<summary>117///删除对象的扩展字典下的所有的扩展记录118/// 2018年4⽉7⽇09:44:12119///</summary>120///<param name="objId"></param>121public static bool DelObjAllXrecords(this ObjectId objId)122 {123 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开对象124 ObjectId dictId = obj.ExtensionDictionary;//获取对象的扩展字典id125if (dictId.IsNull)126 {127return false;//若对象没有扩展字典,则返回128 }129//如果对象有扩展字典,则以读的⽅式打开130 DBDictionary dict = dictId.GetObject(OpenMode.ForWrite) as DBDictionary;131//获取扩展字典下的所有扩展记录名称集合 Keys132133 List<string> listKeys = new List<string>();134foreach (var item in dict)//获取扩展字典中的所有条⽬,也就是所有的扩展记录的key135 {136 listKeys.Add(item.Key);137 }138foreach (var key in listKeys)//根据key,删除扩展字典中的每⼀个条⽬(也就是扩展记录)139 {140 dict.Remove(key);141 }142 dict.DowngradeOpen();//切换为读的状态143return true;144 }145146147///<summary>148///删除对象的扩展字典,因为每个对象只能拥有⼀个扩展字典,所以给定对象的objectID就好了149/// 2018年4⽉7⽇09:17:44150///</summary>151///<param name="objId"></param>152public static bool DeleteObjExtensionDictionary(this ObjectId objId)153 {154 DBObject obj = objId.GetObject(OpenMode.ForRead);//以读的⽅式打开对象155 ObjectId dictId = obj.ExtensionDictionary;//获取对象的扩展字典的ID156if (dictId.IsNull)157 {158return false; //没有扩展字典159 }160//有扩展字典161 obj.UpgradeOpen();//切换对象为写的状态162 objId.DelObjAllXrecords(); //调⽤上⾯的⽅法,在删除扩展字典之前要先删除扩展记录163 obj.ReleaseExtensionDictionary();//移除对象的扩展字典,⼀个对象只能拥有⼀个扩展字典164 obj.DowngradeOpen();//将对象切换为读的状态165return true;166 }167#endregion3调⽤扩展⽅法a 添加扩展记录1//btn 添加扩展记录2 XDataClass PipeXdataClass = new XDataClass(Enum_XRcordName.pipe_whlkx.ToString());3 ObjectId selectedObjId = ObjectId.Null;4private void btnAddXData_Click(object sender, EventArgs e)5 {6if (CheckValue() == false)7 {8return;9 }10 _instance.Hide();11 Document doc = AcadApp.DocumentManager.MdiActiveDocument;12 Database db = doc.Database;13 Editor ed = doc.Editor;14 PromptEntityResult entityResult = ed.GetEntity("\n请选择⼀个多段线对象");//单个拾取对象15if (entityResult.Status != PromptStatus.OK)16 {17 _instance.Show();18return;19 }20 GetDataFromControls(PipeXdataClass);//私有函数,将控件中的数据填充到实体类中21//获取对象的ID22 ObjectId objId = entityResult.ObjectId;23bool result = false;24using (DocumentLock docLock = doc.LockDocument())25using (Transaction trans = db.TransactionManager.StartTransaction())26 {27//将xdataCalss类型的数据转换成⼀个typevalue型的列表28 TypedValueList values = XDataClass.ClassToTypeValueList(PipeXdataClass);29 result = objId.AddXRecordToObj(PipeXdataClass.XRecordName, values);30 mit();31 }32if (result)33 {34 ed.WriteMessage("\n对象的扩展数据添加成功!");35 }36else37 {38 ed.WriteMessage("\n对象已经有扩展数据");39 }40 _instance.Show();41 }b 读取扩展记录1//btn 读取扩展记录2private void btnReadXData_Click(object sender, EventArgs e)3 {4 _instance.Hide();5 ClearContent();//清空控件中的内容6 Document doc = AcadApp.DocumentManager.MdiActiveDocument;7 Database db = doc.Database;8 Editor ed = doc.Editor;9//开始事务处理10using (DocumentLock docLock = doc.LockDocument())11using (Transaction trans = db.TransactionManager.StartTransaction())12 {13 PromptEntityResult entityResult = ed.GetEntity("\n请选择⼀个对象");//拾取单个对象14if (entityResult.Status != PromptStatus.OK)15 {16 ed.WriteMessage("\n取消了选择");17 _instance.Show();18return;19 }20//获取对象的ID21 ObjectId objId = entityResult.ObjectId;22 TypedValueList list = objId.GetObjXrecord(PipeXdataClass.XRecordName);23if (list is null)24 {25 ed.WriteMessage("\n该对象没有扩展记录");26 _instance.Show();27return;28 }29if (list.Count <= 0)30 {31 ed.WriteMessage("\n有扩展记录,但是记录为空");32 _instance.Show();33return;34 }35else36 {37 PipeXdataClass = XDataClass.TypeValueListToClass(list);38 SetDataToControls(PipeXdataClass);//向控件中填充数据39 ed.WriteMessage("\n对象扩展数据读取成功");40 selectedObjId = objId;41 }42 }43 _instance.Show();44 }c 删除扩展记录1//btn 删除2private void btnDeleteXData_Click(object sender, EventArgs e)3 {4 _instance.Hide();5 Document doc = AcadApp.DocumentManager.MdiActiveDocument;6 Database db = doc.Database;7 Editor ed = doc.Editor;8//开始事务处理9using (DocumentLock docLock = doc.LockDocument())10using (Transaction trans = db.TransactionManager.StartTransaction())11 {14 PromptSelectionResult ss1 = ed.GetSelection();//框选对象15if (ss1.Status != PromptStatus.OK)16 {17 ed.WriteMessage("\n取消了选择");18 _instance.Show();19return;20 }21//获取对象的ID22 List<ObjectId> listObjIds = ss1.Value.GetObjectIds().ToList();23int count = 0;24 listObjIds.ForEach(objId =>25 {26if (objId.DeleteObjExtensionDictionary())27 {28 ed.WriteMessage("\n删除成功");29 count++;30 }31 });32//ObjectId objId = entityResult.ObjectId;33//2018年4⽉7⽇09:50:35,经验证,必须先删除扩展字典下的所有的扩展记录,才能删除对象的扩展字典34//否则会出现错误:eContainerNotEmpty ,容器不为空35//objId.DelObjAllXrecords();36//objId.DeleteObjExtensionDictionary();37 mit();38 ed.WriteMessage("\n操作完成,总共删除{0}个扩展记录", count);39 }40 _instance.Show();41 }修改扩展记录可以⾃⼰写⼀下,⽐较简单。
CAD扩展工具( Express Tools)主要命令及其功能介绍AutoCAD提供了不少好用的扩展工具,在安装的时候注意要选上Express Tool,这些工具才能装上,低版本的安装中有些叫Bonus。
有些国产CAD的扩展工具比AutoCAD更丰富,例如浩辰CAD,不仅几乎有AutoCAD全部的扩展工具,还有根据用户的提出需求增加的几十种工具。
CAD的扩展工具分为几大类:图层管理、图块编辑、文字编辑、标注编辑、文件管理、特殊绘图工具等等,有些工具非常方便,可以有效提高你的操作效率。
在后期的版本中,有些扩展工具的功能逐步变成了常规功能,例如图层工具现在在格式菜单中也能调用,云线、区域覆盖(wipeout)、快速引线等功能已经成为基本绘图命令,放到常规功能菜单中去了。
下面简单介绍一下一些常用的功能。
图层工具:很多已经是CAD的基本命令,但很多命令,大家还没怎么用过。
LMAN:图层状态管理器,可以将图层的状态保存起来,随时进行切换。
也可以将图层状态写入文件或从文件中加载文件LAYMCH:图层匹配,可以将对象的图层匹配为其他对象的图层。
LAYCUR:设置为当前层,将选择对象移动到当前层上。
LAYISO:图层隔离,点选或框选对象,只显示选择对象的图层,将其他图层关闭,可以简化图形,方便操作LAYFRZ:图层冻结,选择一个或多个对象,冻结对象所在图层LAYOFF:关闭图层,选择一个或多个对象,关闭对象所在图层LAYLCK:锁定图层,选择一个或多个对象,锁定对象所在图层LAYULK:图层解锁,选择一个或多个对象,解除对象所在图层的锁定LAYON:打开所有图层,将所有被关闭的图层打开LAYTHW:图层解冻,将所有被冻结的图层解冻文字工具:TEXTFIT:文字拟合,设置文字的宽度,压缩或拉伸文字TEXTMASK:文字遮罩,可以生成遮罩来遮挡文字后面的重叠对象CHT:文字批量修改,可以批量修改多个文字的各种特性TXTEXP:文字分解,将文字分解为图形对象,如果文字是作为设计的一部分,可以使用这种功能将文字炸开成线,避免在不同的环境下打开文字发生变化。
软件体系结构试题库(软件工程)一、判断题4、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。
答案:√6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色()答案:√7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。
其中,构件、连接件和配置是最基本的元素()答案:√8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务()答案:某9、构件、连接件以及配置是体系结构的核心模型最基本的元素()答案:√10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。
答案:某11、正交软件体系结构由组织层和线索的构件构成。
答案:√12、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。
答案:√13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。
()答案:√15、相交关系R是一个等价关系。
答案:√16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。
答案:√17、Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。
答案:某18、体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。
答案:√19、基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语言。
答案:√20、需求语言与ADL的区别在于后者描述的是问题空间,而前者则扎根于解空间中。
答案:某21、基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结构层。
答案:√22、ADL提供了一种形式化机制来描述软件体系结构,大多数ADL不进描述系统的静态结构,也支持对体系结构动态性的描述()答案:某23、基于构件的动态系统结构模型分为应用层,中间层和体系结构层。
答案:√24、2000年世界计算机大会提出,软件体系结构中最为重要的三个研究方向是:体系结构风格,静态体系结构和动态体系结构。
产品概述我是一款基于I2C接口控制的I/O扩展模块,可外扩16Pin I/O口,支持同时使用多达8个,即可扩至128Pin I/O口,兼容3.3V和5V电平。
特点●I2C接口控制,仅需2根信号线,即可扩展出16个I/O口●I2C通信地址可设置,短接A0/A1/A2焊点可修改通信地址●提供PH2.0端子和焊盘两种接口类型,支持并联多个I2C模块●板载电平转换电路,可兼容3.3V/5V的工作电平●提供完善的配套资料手册(Raspberry/Micro:bit/Arduino/STM32示例程序和用户手册等)产品参数工作电压:5V/3.3V控制接口:I2C中断引脚:INTA、INTB扩展I/O口数量:16个产品尺寸:38mm × 23mm过孔直径: 2.0mm1接口定义I2C接口用于树莓派需要安装必要的WiringPi函数库,否则以下的示例程序可能无法正常工作。
安装方法详见:/wiki/Pioneer600_Datasheets在官网上找到对应产品,在产品资料打开下载路径,在wiki中下载示例程序:得到解压包,解压得到如下:将Raspberry Pi文件夹及其文件夹下的文件拷至树莓派。
2前置工作执行如下命令进行树莓派配置:sudo raspi-config选择Interfacing Options -> I2C -> yes 启动I2C内核驱动保存退出后,重启树莓派:sudo reboot重启后,运行命令查看,I2C,模块是否已启动:lsmod将会有如下的打印信息:如果显示i2c_bcm2835则表示I2C模块已启动。
将MCP23017模块按照上文接口定义连接至树莓派。
本示例程序已配置成将INTA与INTB内部连接在一起,INTA或INTB连接至0(Wiring PI) 均可测试通过。
34模块默认的I2C 地址为0X27,可通过焊点A2,A1,A0改变器件地址,默认情况下,A2,A1,A0 均未焊接,均为高电平,若将焊点短接,则连接至低电平。
WD(无敌)系列卡PCI总线 RS232 扩展卡用户手册目录一、 性能指标二、 软件支持环境三、 硬件安装3.1、在Windows95/98/Me/2000/XP下安装3.2、WindowsNT4.0串口设备安装3.3、SCO Unix3.2/5.0.5安装3.4、在SCO Unix 下安装调制解调器(MODEM)3.5、在Linux 下安装WD系列多用户卡四、 注意事项五、 产品清单欢迎您选购本公司的WD(无敌)系列卡。
本系列产品使用高性能的通信芯片,每个端口收发各有128字节FIFO,由PCI总线扩展2,4,8,16,32,64个RS232口。
一、 性能指标1. 符合PCI2.1规范2. I/O地址和中断由PC BIOS自动分配3. 端口数量:a. WD-100 为 2 个串口,并口符合IEEE1284规范b. WD-200 为 4 个串口,并口符合IEEE1284规范c. WD-400 为 8 个串口,并口符合IEEE1284规范d. WD-800 为16个串口,并口符合IEEE1284规范4. Windows95/98/Me/2000/XP,Windows NT4.0系统可支持多块WD(无敌)系列卡。
5. 端口数据信号:a. WD-100/200为TX,RX,RTS,CTS,DTR,DSR,DCD,RI,GNDb. WD-400/800为TX,RX,RTS,CTS,DTR,DSR,DCD,GND6. 端口属性(Windows 95/98/Me/2000/XP)a. 端口速率:正常为115.2Kbpsb. 芯片模式可选择:16C450或16C550或16C950,使用16C950时,收发各128字节的FIFO。
并且端口FIFO数量可调整,FIFO中断触发水平可调整。
c. 数据位长度:5,6,7,8d. 校验方式:None,Even,Old,Space,Marke. 停止位长度:1,1.5,2f. 数据流控制方式:None,RTS/CTS,DTR/DSR,Xon/Xoff7. 每个端口的数据信号都有过压保护装置,可防止静电打坏端口8. 为了驱动程序的稳定性和耐用性,驱动程序可能会用CD-R光盘形式配送的,而非软盘。