为您找到搜索结果:2089个
3d打印机的软件系统组成部分
主要由计算机、应用软件、底层控制软件和接口驱动单元组成1)计算机一般采用上位机和下位机两级控制。其中上位主控机一般采用配置高、运行速度快的PC机;下位机采用嵌入式系统DSP,驱动执行机构。上位机和下位机通过特定的通信协议进行双向通信,构成控制的双层结构。为提高数据传输速度和可靠性,上位机和下位机的接口可选用通信速率高,数据传输量大的PCI接口,实现多重复杂控制任务的高效性与协调运动。上位机完成打印数据处理和总体控制任务,主要功能有:(1)从CAD模型生成符合快速打印成型工艺特点的数据信息;(2)设置打印参数信息:(3)对打印成型情况进行监控并接收运动参数的反馈,必要时通过上位机对成型设备的运动状态进行干涉;(4)实现人机交互,提供打印成型进度的实时显示;(5)提供可选加工参数询问,满足不同材料和加工工艺的要求。下位机进行打印运动控制和打印数据向喷头的传送。它按照预定的顺序向上位机反馈信息,并接受控制命令和运动参数等控制代码,对运动状态进行控制。2)应用软件主要包括下列模块处理部分:(1)切片模块:基于STL文件切片模块;(2)数据处理:具有切片模块到打印位图数据的转换,打印区域的位图排...
linux kernel系列四:嵌入式系统中的文件系统以及MTD
本节介绍FileSystem和MTD技术一FS熟知的FS有ext2,3,4.但是这些都是针对磁盘设备的。而ES中一般的存储设备为Flash,由于Flash的特殊性:Flash存储按照Blocksize进行划分,而一个BLS一般有几十K。(对比磁盘的一个簇才512个字节)。这么大的BLS有什么坏处呢?很明显,擦除一个BL就需要花费很长的时间了。另外,FLASH操作,一次必须针对一个BL,也就是如果我想修改一个字节的话,也必须先擦掉128K。这不是想死吗?FLASH每个BL擦写次数是有限的,例如2百万次?如果每次都操作同一个BL的话,很快这个BL就会死掉。所以,针对FLASH的特性,整出了一个JournalingFlashFileSystem(JFFS2,第二版)。它的特点就是:损耗均衡,也就是每次擦写都不会停留在一个BL上。例如BL1上写一个文件,那么再来一个新文件的时候,FS就不会选择BL1了,而是选择BL2。这个技术叫wealleveling:损耗均衡(apt-getinstallmtd-tools,下载不少好工具,另外,可见往flash设备写log,可能会导致flash短命喔)一些...
AVR单片机最小系统 基本硬件线路与分析
单片机最小系统 单片机最小系统设计AVR基本硬件线路设计与分析(ATmega16功能小板)AVRDB-COREVer2.3Atmega16开发板本站商城提供本最小系统销售:99元AVR学习套件AVR学习板AVR开发板easyavrm16,ATmega16开发板AVR学习板Mega16核心板(特价)。基本的AVR硬件线路,包括以下几部分:1。复位线路2。晶振线路3。AD转换滤波线路4。ISP下载接口5。JTAG仿真接口6。电源7。串口电路下面以本网站推荐的AVR入门芯片ATmega16L-8AI分析上述基本线路。(-8AI表示8M频率的TQFP贴片封装,工业级,更详细的型号含义资料,请参考:AVR芯片入门知识)复位线路的设计(下图上面一部分)Mega16已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R6)。为了可靠,再加上一只0.1uF的电容(C13)以消除干扰、杂波。D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V左右,另一作用是系统断电...
用bochs调试自己写的系统引导代码
1安装和配置bochs 首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法差不多,不过我仅仅在Window和Linux下安装使用过。 在bochs.sourceforge.net里面把Bochs-2.6.1.exe给download下来,双击就开始安装。这软件不大,安装完才4兆多,当然,这是标准安装,如果你选择的是完全安装,则比标准安装多个DLXlinuxdemo这个OS,如果你是第一次使用BOCHS,建议你用完全安装,装完,现不用着急学会BOCHS的一大堆配置,可以先用用它自带的这个OS,感受下BOCHS。 在BOCHS的目录里面有个dlxlinux子目录,进去,双击bochsrc,就进入下图:这dlxlinux是系统自带的,如果自己想用别的操作系统该怎么办呢?嘿嘿,别着急,BOCHS的开发者们已经为我们考虑好了,bochs.sourceforge.net里面,你能找到很多img文件,这些...
Linux command 系统快捷键
群里有人问“问个问题,Linux命令行有没有快捷键一下从行末会到行头?经常敲了很多命令发现忘加sudo了,然后把命令删了重新敲一遍”。 自己还真不知道怎么操作,只知道历史命令可以使用上下光标切换。 正好早上微博有人科普,感谢龙浩的blog的总结,我也补充点知识,纠正一下百度知道上关于“HISTFILESIZE”和“HISTSIZE”的区别错误回答。 好吧,开始说说历史记录个数的“HISTFILESIZE”和“HISTSIZE”的区别, 默认情况下HISTFILESIZE和HISTSIZE的值都是500,表示可以记录500条命令记录。HISTFILESIZE表示记录在文件中的命令条数HISTSIZE表示记录在内存中的命令条数 当我们在shell命令行执行命令的时候,最近的HISTSIZE条命令被保存在内存当中可以使用上下光标或者ctrl+p,ctrl+n上下查找命令。 当退出shell时HISTFILESIZE条命令被保存到历史命令文件中,下次登录shell时会从历史命令文件中读取命令道内存历史命令道中。 当网络中断等异常时,你会发现之前的历史命令,下次登录时用上下光标找不...
FineUI经典项目展示(1)生产在线管理系统
本系列《FineUI经典项目展示》文章将会集中展示一批使用FineUI(开源版)、专业版、MVC版的经典项目。如果你希望自己的FineUI项目出现在这个舞台,请到官网论坛提交申请:http://fineui.com/bbs/forum.php?mod=forumdisplay&fid=37 今天的要展示的项目来自北京的网友【秋收】,你可以通过官网论坛或者QQ群和他联系:官网论坛: FineUIVIP3+会员群: 生产在线管理系统FineUI(开源版)v4.2.4.1本系统主要用于机械制造企业计划分解、下达、车间现场执行情况即时反馈、车间现场质量情况即时反馈、后台数据查询和统计分析等。系统开发特点如下:A、传统车间生产在线系统为方便车间现场使用扫码枪扫码(尽量少使用键盘和鼠标)和保证数据的实时性、大多使用C/S结构、而本系统使用FineUI框架及丰富的控件,结合使用jQuery、Node.js、WebSocket等技术,在B/S结构下实现了车间生产在线的主要功能;B、充分利用EnableIFrame和IFrameUrl属性、以及用户控件功能,将所有功...
操作系统--文件系统、大容量存储结构
文件系统: 逻辑文件系统通过FCB(文件控制块)来维护文件结构 文件系统的类型:FAT、FAT32、ext、ext2、ext3、ext4、NFS、VFS 文件系统在磁盘中的结构:分区控制块、引导控制块(分区的第一块)、目录结构、文件控制块(FCB) 文件系统在内存中的结构:内存分区表、内存目录结构(保存近来访问过的目录信息)、系统范围的打开文件表(包括每个打开文件的FCB拷贝信息和其他信息)、单个进程的打开文件表(包括一个指向系统范围内已打开文件表中合适条目和其他信息的指针) 虚拟文件系统(VFS):在不同类型的文件系统上采用同样的系统调用接口 文件在磁盘上的分配方式: 1.连续分配:每个文件占据磁盘上的一组连续的块 2.基于扩展的连续分配:该方法一开始使用连续分配,空间不够了,另一块被称为扩展的连续空间会被添加到原来的分配中 3.链接分配 4.文件分配表(FAT):每个分区的开始部分用于存储该FAT表,每个磁盘块在该表中占有一项,该表通过块号来索引,同时利用链接分配的思想 5.索引分配:将所有的数据块指针集中到索引块中,一个索引块通常为一个磁...
操作系统--内存管理
内存管理: 1.单一分区分配: 用于单用户、单任务的操作系统,主存被分为两部分:驻留操作系统(内存低端)、用户进程(内存高端) 2.多分区分配: 满足多道程序的最简单的存储管理方案,将内存划分成若干个连续区域,称为分区;每个分区只能存储一个程序,并且程序也只能在它所驻留的分区中运行 分区方法分为固定分区和动态分区,分区分配算法:First-Fit、Best-Fit、Worst-Fit、Next-Fit 这种分配策略会同时存在外部碎片和内部碎片,可通过紧缩减少碎片 3.页式内存管理: 允许进程的物理地址空间可以是不连续的 逻辑地址空间中划分为页(数据块),物理地址空间划分为页帧,从逻辑地址映射到物理地址空间使用页表 因此,每一次的数据/指令访问需要两次内存访问,可使用快表(TLB),使访问降到一次 页表:分级页表、哈希页表、反向页表 这种分配策略会同时存在外部碎片和内部碎片 4.段式内存管理: 允许进程的物理地址空间可以是不连续的 适应用户的角度,使用段表映射地址 由于段的长度可变(区别于页),所以就面临动态...
操作系统--进程管理
进程管理: 进程基本概念: 1.每个进程在内存都中有实际的空间,包括代码段、数据段、堆、栈等 2.进程的五个状态:运行、就绪、等待(阻塞)、创建、结束 3.每个操作系统只有一个运行进程、一个就绪进程队列和N个等待进程队列,一个等待进程队列等待同一个资源 4.每个进程在操作系统中进程控制块(PCB)来表示 5.进程的上下文切换,就是离开的进程要将CPU寄存器中的值放到自己PCB的registers中,而进入的进程将PCB的registers中的值放到CPU寄存器中;上下文切换是额外开销,应尽量减少 6.进程间通信(IPC):信号量、消息队列、共享内存、管道、套接字、信号 线程基本概念: 1.与进程的区别: 宏观上,资源拥有的单位为进程(或任务),调度的单位为线程; 线程只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程拥有的全部资源 线程的系统开销比进程小 2.用户级线程:不依赖与OS核心(内核不了解用户线程的存在),应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程...
获取系统版本内核版本信息
privatestaticfinalStringLOG_TAG="DeviceInfoSettings";privatestaticfinalStringFILENAME_PROC_VERSION="/proc/version";privateStringreadLine(Stringfilename)throwsIOException{BufferedReaderreader=newBufferedReader(newFileReader(filename),256);try{returnreader.readLine();}finally{reader.close();}}//内核版本privateStringgetFormattedKernelVersion(){StringprocVersionStr;try{procVersionStr=readLine(FILENAME_PROC_VERSION);finalStringPROC_VERSION_REGEX="\w+\s+"+/*ignore:Linux*/"\w+\s+"+/*ignore:version*/"([^\s]...
kickstart技术安装操作系统
kickstart是RedHat公司开源的软件,所以对CentOS兼容性最好。原理:我们将手动安装的所有的详细步骤记录到一个文件中,然后kickstart通过读取这个文件就可以实现自动化安装系统。kickstart是一个项目的名称。没有这个软件。使用者水平是高中以上cobbler是对kickstart的所有组件的封装。使用者水平是初中以上。本质上就是网页版本的kickstart。kickstart的原理及组件 环境准备 [root@kickstart~]#cat/etc/redhat-releaseCentOSLinuxrelease7.4.1708(Core)[root@kickstart~]#uname-r3.10.0-693.el7.x86_64[root@kickstart~]#getenforceDisabled[root@kickstart~]#systemctlstatusfirewalld.service●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr...
(转)分布式系统编程,你到哪一级了?
介绍当分布式系统编程成为你生活中的一部分时,你需要经历一段学习曲线。这篇文章描述了一下我当前在这个领域大致属于哪个层次,并希望能为你指出足够多的错误,从别人的错误中学习,从而使你能以最优的路径通向成功。先声明一下,我在1995年时达到第1级,我现在处于第3级。你自己属于哪一级呢?第0级:完全一无所知每个程序员都从这一级开始。我不会在此浪费太多口舌,因为这实在没什么太多可说的。相反,我会引用一些我曾经经历过的对话,为从未接触过分布式系统的开发者们提供一些建议。对话1:NN:“在分布式系统中,复制是个很容易的操作,你只需要让所有的结点同时存储你要复制的东东就行了”。 另一段对话(从我记忆深处挖出来的):NN:“为了我们的第一人称射击游戏,我们得写一个自己的网络处理引擎。”我:“为什么?”NN:“虽然已经有一些优秀的商业引擎了,但获取license的费用非常高昂,我们不想为此买单。”我:“你之前对于分布式系统有什么经验吗?”NN:“是的,我之前写过一个...
Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
在Android系统中用来显示界面的组件(Component)为Activity,也就是说只有重写Activity的onKeyDown方法来监控/拦截/屏蔽系统的返回键(back)、菜单键(Menu)及Home键。1、拦截/屏蔽返回键、菜单键实现代码@Override processExit(); //监控/拦截菜单键 } this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); if (code == KeyEvent.KEYCODE_HOME) { if (attrs != null) { &nbs...
当你触摸并按住触摸目标时候,禁止系统默认菜单-webkit-touch-call
当你触摸并按住触摸目标时候,禁止或显示系统默认菜单。-webkit-touch-callout是一个不规范的属性(unsupportedWebKitproperty),它没有出现在CSS规范草案中。在iOS上,当你触摸并按住触摸的目标,比如一个链接,Safari浏览器将显示链接有关的系统默认菜单。这个属性可以让你禁用系统默认菜单。 适用于:链接元素比如新窗口打开,img元素比如保存图像等等 系统默认菜单被禁用default:系统默认菜单不被禁用-webkit-touch-callout:default/*displaysthecallout*/-webkit-touch-callout:none/*disablesthecallout*/-webkit-touch-callout:initial-webkit-touch-callout:inherit-webkit-touch-callout:unset ...
Bootstrap 网格系统的工作原理
网格系统通过一系列包含内容的行和列来创建页面布局。下面列出了Bootstrap网格系统是如何工作的:行必须放置在 .container class内,以便获得适当的对齐(alignment)和内边距(padding)。使用行来创建列的水平组。内容应该放置在列内,且唯有列可以是行的直接子元素。预定义的网格类,比如 .row 和 .col-xs-4,可用于快速创建网格布局。LESS混合类可用于更多语义布局。列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距(margin)取负,表示第一列和最后一列的行偏移。网格系统是通过指定您想要横跨的十二个可用的列来创建的。例如,要创建三个相等的列,则使用三个 .col-xs-4。...