资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Company Logo,*,Click to edit Master title style,LOGO,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Company Logo,*,Company Logo,第,5,章 使用传统语言开发测控软件,5.3,在,Visual C+,窗口中调用,VISA,5.2,开发简单,VISA,程序,5.1,VISA,简介及其函数简介,5.4 Visual C+,综合测控系统开发,5.1,VISA,简介及其函数简介,5.1.1,什么是,VISA,5.1.2,VISA,的发展现状,5.1.3,VISA,种类,5.1.4,VISA,函数简介,5.1.1,什么是,VISA,VISA,是虚拟仪器软件结构,(Virtual Instrument Software Architecture),的简称,是由,VXI plug&play(VPP),系统联盟所统一制定的,I/O,接口软件标准及其相关规范的总称。,一般称这个,I/O,函数库为,VISA,库(用于仪器编程的标准,I/O,函数库)。,VISA,函数库驻留于计算机系统中,是计算机与仪器之间的标准软件通信接口,用以实现对仪器的控制。,5.1.1,什么是,VISA,包含,GPIB,、,VXI,、,PXI,、串口,(RS232/485),、以太网、,USB,和,/,或,IEEE 1394,接口的仪器系统进行配置、编程和故障排除的标准。,什么是,SICL,SICL(Standard Instrument Control Library)is an I/O library developed by Agilent that is portable across many I/O interfaces and systems.,A platform-independent API for software to control and test electronic instruments conforming to IEEE 488.,A goal of SICL is to make instrument programming in C more viable than it is today.,5.1.2 VISA,的发展状况,VISA,规范是,VPP,规范的核心内容,其中,VPP4.3,:,VISA,库,规定了,VISA,库的函数名、参数定义及返回代码等。,VPP4.3.2,:文本语言的,VISA,实现规范,和,VPP4.3.3,:图形语言的,VISA,实现规范,分别对文本语言(,C/C+,和,Visual Basic,)和图形语言(,LabVIEW,)实现,VISA,时的,VISA,数据类型与各种语言特定数据类型的对应关系、返回代码、常量等进行了定义。,VISA3.0,由,IVI(Interchangeable Virtual Instruments),基金维护。,5.1.3 VISA,种类,NI-VISA,大体分,2,种,Agilent-VISA,VISA-COM,和,VISA-C,VISA-COM,:,VISA COM I/O,是基于,VISA I/O,架构的。,VISA,中的基本单元是资源会话,即表示与物理资源的一个连接。某些资源支持同时多个会话,但一个会话在整个会话期间只能针对一个物理资源。在,VISA COM,,一个,COM,对象表示一个,VISA,资源会话。,The COM object is only considered a VISA resource during the portion of its lifetime between initialization(via the objects Init method or creation by a Resource Manager)and closing(either destruction of the object upon the reference count going to zero or a call to the Close()method,whichever comes first).,扩展介绍,-COM,组件对象模型,1,Components Object Model(COM),是软件组件互相通讯的一种方式。,2,是一种二进制和网络标准,允许任意两个组件互相通讯,而不管它们是在什么计算机上运行,不管各计算机运行的是什么操作系统(只要该操作系统支持,COM,),也不管该组件是用什么语言编写的。,3,软件的复用率提高,使软件的使用效率得到提高并延长了使用寿命。组件编程体系使大量的编程问题局部化了,使软件的更新和维护变得快速和容易,软件的成本大大降低。,VISA-COM,和,VISA-C,VISA-C,:标准,C,语言接口,VISA,5.1.4 VISA,函数简介,viOpenDefaultRM,必须首先使用该函数通过缺省的资源管理器打开一个会话。该函数初始化缺省的资源管理器并返回指向该资源管理会话的一个指针。,viOpen,该函数与指定的设备建立一个通信信道。在使用设备前必须调用该函数。其它,VISA,函数使用该函数返回的会话标识符来操作设备。,viPrintf/viScanf,VISA,格式化,I/O,函数。,调用,viPrintf,将,IEEE 488.2*RST,命令发送给仪器;,调用,viScanf,函数读取仪器的结果。,viClose,必须使用该函数来关闭每个会话。当关闭会话后,释放为会话所分配的所有的数据结构,。当关闭缺省的资源管理器会话后,使用缺省的资源管理器会话的会话将全部关闭。,viOpenDefaultRM,viOpenDefaultRM(ViPSession sesn);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,sesn,输出,ViPSession,对缺省资源管理器会话的唯一标识符,代码,描述,VI_SUCCESS,操作成功,VI_ERROR_ALLOC,创建缺省资源管理器会话时系统资源不足。,VI_ERROR_INV_SETUP,某些配置文件损坏或不存在。,VI_ERROR_SYSTEM_ERROR,VISA,系统初始化失败,viOpen,viOpen(ViSession sesn,ViRsrc rsrcName,ViAccessMode accessMode,ViUInt32 timeout,ViPSession vi);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,sesn,输入,ViSession,资源管理器会话,rsrcName,输入,ViRsrc,资源的唯一的符号名字(,VISA,名字),accessMode,输入,ViAccessMode,资源访问模式(如独占),timeout,输入,ViUInt32,超时时间,vi,输出,ViPSession,唯一的会话逻辑标识符引用,代码,描述,VI_SUCCESS,操作成功,viPrintf,viPrintf(ViSession,vi,ViString,writeFmt,arg1,arg2,.);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,vi,输入,ViSession,唯一的逻辑会话标识符,writeFmt,输入,ViString,描述参数格式的字符串,arg1,arg2,输入,-,格式字符串对应的参数,代码,描述,VI_SUCCESS,操作成功,viScanf,viScanf(ViSession vi,ViString readFmt,arg1,arg2,.);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,vi,输入,ViSession,唯一的逻辑会话标识符,readFmt,输入,ViString,描述参数格式的字符串,arg1,arg2,输出,-,格式字符串对应的参数,代码,描述,VI_SUCCESS,操作成功,viRead,viRead(ViSession,vi,ViPBuf,buf,ViUInt32,count,ViPUInt32,retCount,);,参数:,返回值:,ViStatus,(同前),名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,buf,输入,ViPBuf,Represents the location of a buffer to receive data from device.,count,输入,ViUInt32,Number of bytes to be read.,retCount,输出,ViPUInt32,Represents the location of an integer that will be set to the number of bytes actually transferred.,viWrite,viWrite(ViSession vi,ViBuf buf,ViUInt32 count,ViPUInt32 retCount);,参数:,返回值:,ViStatus,(同前),名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,buf,输入,ViPBuf,Represents the location of a data block to be sent to device.,count,输入,ViUInt32,Specifies number of bytes to be written.,retCount,输出,ViPUInt32,Represents the location of an integer that will be set to the number of bytes actually transferred.,viMoveIn,viMoveIn8(ViSession vi,ViUInt16 space,ViBusAddress offset,ViBusSize length,ViAUInt8 buf8);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,space,输入,ViPBuf,指明地址空间,offset,输入,ViUInt32,要读取的开始地址或者寄存器偏移,length,输入,ViPUInt32,要传输的数据的长度,buf8,输出,ViAUInt8,从总线读取的数据,代码,描述,VI_SUCCESS,操作成功,viMoveOut,viMoveOut8(ViSession vi,ViUInt16 space,ViBusAddress offset,ViBusSize length,ViAUInt8 buf8);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,space,输入,ViPBuf,指明地址空间,offset,输入,ViUInt32,要写入的开始地址或者寄存器偏移,length,输入,ViPUInt32,要传输的数据的长度,buf8,输出,ViAUInt8,写到总线的数据,代码,描述,VI_SUCCESS,操作成功,viPoke,viPoke8(ViSession vi,ViAddr addr,ViUInt8 val8);,参数:,返回值:无,名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,addr,输入,ViPBuf,Specifies the destination address to store the value.,val8,输出,ViUInt32,Data write tobus,viPeek,viPeek8(ViSession vi,ViAddr addr,ViPUInt8 val8);,参数:,返回值:无,名称,输入,/,输出,类型,描述,vi,输入,ViPSession,唯一的逻辑会话标识符,addr,输入,ViPBuf,Specifies the source address to read the value.,val8,输出,ViUInt32,Data read from bus,viClose,viClose(ViSession/ViEvent/ViFindList vi);,参数:,返回值:,ViStatus,名称,输入,/,输出,类型,描述,vi,输入,ViSessionViEventViFindlist,对会话、事件、寻找列表的唯一标识符,代码,描述,VI_SUCCESS,操作成功,VI_WARN_NULL_OBJECT,指定对象的引用未初始化,VI_ERROR_CLOSING_FAILED,不能释放为该会话和资源分配的数据结构,VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT,给定的会话为无效,5.2,开发,VISA,程序,Microsoft Visual C+Version 6.0,开发环境:,点击,File,菜单创建一个空的控制台工程。,选择菜单,Project-Settings,,点击,C/C+,标签。,从,Category,下拉框选择,Code Generation,,从,Use Run-Time Libraries,下拉框选择,Multi-Threaded DLL,。,点击,Link,标签,将,visa32.lib,(新版,agilent,的,VISA,库为,agvisa32.lib,)添加到,Object/Library Modules,框中。,添加头文件,#include“visa.h”,编写程序,步骤,1,步骤,1,步骤,1,步骤,2,步骤,3,注意:新版,agilent,的,VISA,库为了跟,NI-VISA,区别,改成,agvisa32.lib,步骤,4,注意:有的路径可能是,C:VXIPNPWinNTagvisainclude,步骤,4,注意:有的路径可能是,C:VXIPNPWinNTagvisalibmsc,步骤,4,步骤,4,运行程序,步骤,5,添加头文件,#include“visa.h”,步骤,6,编写程序:,#include,#include,#include,void main(),ViSession defaultRM,vi;,char buf 256=0;,/*Open session to GPIB device at address 22*/,viOpenDefaultRM(,viOpen(defaultRM,GPIB0:22:INSTR,VI_NULL,VI_NULL,/*Initialize device*/,viPrintf(vi,*RSTn);,步骤,6,/*Send an*IDN?string to the device*/,viPrintf(vi,*IDN?n);,/*Read results*/,viScanf(vi,%t,buf);,/*Print results*/,printf(Instrument identification string:%sn,buf);,/*Close session*/,viClose(vi);,viClose(defaultRM);,getch();,5.2.1,接口类型,5.2.1,接口类型,5.2.2,接口类型举例,5.2.2,接口类型举例,5.2.3 Agilent VISA COM I/O,资源类,5.2.4 VISA COM,程序,#import“C:VXIPNPvisacomGlobMgr.dll no_namespace,int main(),IResourceManagerPtr rm;,IMessagePtr ptr;,_bstr_t idn;,CoInitialize(NULL);,5.2.4 VISA COM,程序,try,/Instantiate the Global Resource Manager rm.CreateInstance(_uuidof(ResourceManager);,/*Open the session with the default values for the Lock(None),Timeout(N/A),and OptionString().The return value is an IVisaSession,but the,ptr variable is an IMessage interface reference,causing an implicit,IUnknown:QueryInterface()to occur.The _com_ptr_t smart pointer class,that wraps the interfaces(courtesy of#import)handles the details.,*/,5.2.4 VISA COM,程序,ptr=rm-Open(GPIB0:22,NO_LOCK,0,);,ptr-WriteString(*IDN?n);,idn=ptr-ReadString(1000);,MessageBox(NULL,idn,IDN?Result,MB_OK);,catch(_com_error&err),MessageBox(NULL,err.Description(),Error Occurred,MB_OK);,return 0;,CoUninitialize();,return 1;,5.2.5 Agilent I/O Libray Suite 14,/bufiAPPL:RAMP 1000,3.,ptr variable is an IMessage interface reference,causing an implicit,3 窗口中调用VISA,3 Agilent VISA COM I/O资源类,VI_ERROR_SYSTEM_ERROR,十月 229:53 下午10月-2221:53October 25,2022,10月-2210月-2221:53:4821:53:48October 25,2022,10、很多事情努力了未必有结果,但是不努力却什么改变也没有。,viOpenDefaultRM,NI Measurement Studio,必须使用该函数来关闭每个会话。,viOpenDefaultRM(,if(m_Switch.,CDialog:OnTimer(nIDEvent);,9:53:48 下午9:53 下午21:53:4810月-22,5.2.5 Agilent I/O Libray Suite 14,5.2.5 Agilent I/O Libray Suite 14,5.3,在,Visual C+,窗口中调用,VISA,5.3.1,Visual C+,深入介绍,5.3.2,NI Measurement Studio,5.3.3,窗口中调用,VISA,5.3.1,Visual C+,深入介绍,Visual C+,是一个功能强大的可视化软件开发工具。,特色,Visual C+6.0,由,Microsoft,开发,它不仅是一个,C+,编译器,,而且是一个基于,Windows,操作系统的可视化,集成开发环境,(,integrated development environment,,IDE,)。Visual C+6.0,由许多组件组成,包括编辑器、调试器以及程序向导,AppWizard,、类向导,Class Wizard,等开发工具。这些组件通过一个名为,Developer Studio,的组件集成为和谐的开发环境。,Microsoft,的主力软件产品。,Visual C+,是一个功能强大的可视化软件开发工具。自,1993,年,Microsoft,公司推出,Visual C+1.0,后,随着其新版本的不断问世。,5.3.1,Visual C+,深入介绍,Visual C+6.0,以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件,(stdafx.h),、最小重建功能及累加连结,(link),著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。,5.3.1,Visual C+,深入介绍,缺点,由于,C+,是由,C,语言发展起来的,也支持,C,语言的编译。,6.0,版本是使用最多的版本,很经典。最大的缺点是对于模版的支持比较差。现在最新补丁为,SP6,,推荐安装,否则易出现编译时假死状态。仅支持,Windows,操作系统。目前发现与,windows 7,兼容性不好,安装成功后可能会出现无法打开,cpp,文件的现象。,5.3.1,Visual C+,深入介绍,主要部分,Developer Studio,这是一个集成开发环境,我们日常工作的,99%,都是在它上面完成的,再加上它的标题赫然写着“,Microsoft Visual C+”,,所以很多人理所当然的认为,那就是,Visual C+,了。其实不然,虽然,Developer Studio,提供了一个很好的编辑器和很多,Wizard,,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,,Developer Studio,并不是专门用于,VC,的,它也同样用于,VB,,,VJ,,,VID,等,Visual Studio,家族的其他同胞兄弟。所以不要把,Developer Studio,当成,Visual C+,,它充其量只是,Visual C+,的一个壳子而已。,5.3.1,Visual C+,深入介绍,2.MFC,从理论上来讲,,MFC,也不是专用于,Visual C+,,,Borland C+,,,C+Builder,和,Symantec C+,同样可以处理,MFC,。同时,用,Visual C+,编写代码也并不意味着一定要用,MFC,,只要愿意,用,Visual C+,来编写,SDK,程序,或者使用,STL,,,ATL,,一样没有限制。不过,,Visual C+,本来就是为,MFC,打造的,,Visual C+,中的许多特征和语言扩展也是为,MFC,而设计的,所以用,Visual C+,而不用,MFC,就等于抛弃了,Visual C+,中很大的一部分功能。但是,,Visual C+,也不等于,MFC,。,5.3.1,Visual C+,深入介绍,3.Platform SDK,这才是,Visual C+,和整个,Visual Studio,的精华和灵魂,虽然我们很少能直接接触到它。大致说来,,Platform SDK,是以,Microsoft C/C+,编译器为核心(不是,Visual C+,,看清楚了),配合,MASM,,辅以其他一些工具和文档资料。上面说到,Developer Studio,没有编译程序的功能,那么这项工作是由谁来完成的呢?是,CL,,是,NMAKE,,和其他许许多多命令行程序,这些我们看不到的程序才是构成,Visual Studio,的基石。,5.3.1,Visual C+,深入介绍,5.3.2,NI Measurement Studio,NI Measurement Studio,是为,Visual Studio.NET,和,Visual Studio 6.0,环境提供的一个集成式套件,包括各种常用的测量和自动化控件、工具和类库。,NI Measurement Studio,带有的,ActiveX,和,.NET,控件、面向对象的测量硬件接口、高级的分析库、科学的用户界面控件、测量数据网络化、向导、交互式代码设计器和高扩展性类库等功能,极大的减少了您应用程序的开发时间。,5.3.2,NI Measurement Studio,为,C+,提供的功能,Measurement Studio,为在,Visual C+,中开发测量和自动化系统提供了一个交互式设计方式。由于这些工具被集成到,Visual C+,开发环境中,因此您可以像使用微软工具一样直接调用它们。您也可以利用,Measurement Studio,应用向导,(AppWizard),以及控件和类库,轻松创建您的,C+,测量系统。应用向导根据您的特定要求创建一个项目,包含一个代码模板和设计应用程序时所需要的测量工具。这些工具包含了用于仪器控制、数据采集、数据分析和通过因特网实时传输数据所需要的,C+,类库。此外,自定义控件可创建您自己的测量用户界面。数据对象类库实现了数据从采集到分析再到显示的无缝封装和传输,将测量类库和界面控件连接到了一起。,5.3.2,NI Measurement Studio,为,C+,提供的功能,Measurement Studio,企业版和专业版继续提供在,Visual C+6.0,和,Visual Basic 6.0,环境下开发所需的,ActiveX,控件和类库。利用交互式,ActiveX,属性页面,您可以为模拟输入和输出、数字,I/O,、,GPIB,、,VISA,以及更多的设备图形化配置数据采集和仪器控制应用程序。科学分析库包括了很多常用函数,如快速傅立叶变换(,Fast Fourier transforms,)、频谱测量和数组操作等。此外,包含在,Measurement Studio,里的,ActiveX,用户界面控件专为使您创建一个如同真实世界仪器的虚拟仪器系统而设计。,5.3.2,NI Measurement Studio,ViStatus viSta;,要写入的开始地址或者寄存器偏移,viMoveIn8(ViSession vi,ViUInt16 space,ViBusAddress offset,ViBusSize length,ViAUInt8 buf8);,点击Link标签,将visa32.,17、一个人即使已登上顶峰,也仍要自强不息。,某些配置文件损坏或不存在。,VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT,从理论上来讲,MFC也不是专用于Visual C+,Borland C+,C+Builder和Symantec C+同样可以处理MFC。,viScanf(vi,%t,buf);,#include conio.,0,0n);break;,10、阅读一切好书如同和过去最杰出的人谈话。,#include visa.,KillTimer(1);,NET和Visual Studio 6.,十月 227:35 上午10月-2207:35October 26,2022,5.3.2,NI Measurement Studio,5.3.2,NI Measurement Studio,5.3.2,NI Measurement Studio,例:模拟温度采集,5.3.2,NI Measurement Studio,void CMoniDlg:OnTimer(UINT nIDEvent),if(m_Switch.GetValue(),m_SliderS.SetValue(rand()%100);,else,m_SliderH.SetValue(rand()%100)*1.8+32);,CDialog:OnTimer(nIDEvent);,5.3.2,NI Measurement Studio,void CMoniDlg:OnBtnStart(),/TODO:Add your control notification handler code here,SetTimer(1,200,NULL);,void CMoniDlg:OnButtonStop(),/TODO:Add your control notification handler code here,KillTimer(1);,5.3.2,NI Measurement Studio,例:模拟波形输出,5.3.2,NI Measurement Studio,例:模拟波形输出,5.3.2,NI Measurement Studio,例:模拟波形输出,5.3.3,窗口中调用,VISA,例:操作函数发生器,Agilent 33250A,波形输出,5.3.3,窗口中调用,VISA,void CVCTestDlg:OnBtnoutput(),/TODO:Add your control notification handler code here,UpdateData(true);,CString strParam=;/APPL:SQU 1000,3.0,0n;,ViStatus viSta;,char buf 256=0;,switch(m_Type.GetCurSel(),case 0:strcpy(buf,APPL:SIN 1000,3.0,0n);break;,case 1:strcpy(buf,APPL:SQU 2000,3.0,0n);break;,case 2:strcpy(buf,APPL:RAMP 3000,3.0,0n);break;,default:strcpy(buf,APPL:SIN 1000,3.0,0n);,5.3.3,窗口中调用,VISA,ViSession defaultRM,vi;,/bufiAPPL:RAMP 1000,3.0,0n;,/*Open session to GPIB device at address 22*/,viOpenDefaultRM(,viSta=viOpen(defaultRM,USB0:2391:1031:MY44015369:0:INSTR,VI_NULL,VI_NULL,if(viSta!=VI_SUCCESS),AfxMessageBox(viOpen 出错!);,return;,viSta=viLock(vi,VI_EXCLUSIVE_LOCK,1000,VI_NULL,VI_NULL);,5.3.3,窗口中调用,VISA,if(viSta!=VI_SUCCESS),AfxMessageBox(viLock 出错!);,return;,viSta=viPrintf(vi,buf);,if(viSta!=VI_SUCCESS),AfxMessageBox(viPrintf 出错!);,return;,viSta=viUnlock(vi);,viClose(vi);,viClose(defaultRM);,9,、静夜四无邻,荒居旧业贫。,10月-26,10月-26,Saturday,October 3,2026,10,、雨中黄叶树,灯下白头人。,01:04:02,01:04:02,01:04,10/3/2026 1:04:02 AM,11,、以我独沈久,愧君相见频。,10月-26,01:04:02,01:04,Oct-26,03-Oct-26,12,、故人江海别,几度隔山川。,01:04:02,01:04:02,01:04,Saturday,October 3,2026,13,、乍见翻疑梦,相悲各问年。,10月-26,10月-26,01:04:02,01:04:02,October 3,2026,14,、他乡生白发,旧国见青山。,03 十月 2026,1:04:02 上午,01:04:02,10月-26,15,、比不了得就不比,得不到的就不要。,。,十月 26,1:04 上午,10月-26,01:04,October 3,2026,16,、行动出成果,工作出财富。,2026/10/3 1:04:02,01:04:02,03 October 2026,17,、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。,1:04:02 上午,1:04 上午,01:04:02,10月-26,9,、没有失败,只有暂时停止成功!。,10月-26,10月-26,Saturday,October 3,2026,10,、很多事情努力了未必有结果,但是不努力却什么改变也没有。,01:04:02,01:04:02,01:04,10/3/2026 1:04:02 AM,11,、成功就是日复一日那一点点小小努力的积累。,10月-26,01:04:02,01:04,Oct-26,03-Oct-26,12,、世间成事,不求其绝对圆满,留一份不足,可得无限完美。,01:04:02,01:04:02,01:04,Saturday,October 3,2026,13,、不知香积寺,数里入云峰。,10月-26,10月-26,01:04:02,01:04:02,October 3,2026,14,、意志坚强的人能把世界放在手中像泥块一样任意揉捏。,03 十月 2026,1:04:02 上午,01:04:02,10月-26,15,、楚塞三湘接,荆门九派通。,。,十月 26,1:04 上午,10月-26,01:04,October 3,2026,16,、少年十五二十时,步行夺得胡马骑。,2026/10/3 1:04:02,01:04:02,03 October 2026,17,、空山新雨后,天气晚来秋。,1:04:02 上午,1:04 上午,01:04:02,10月-26,9,、杨柳散和风,青山澹吾虑。,10月-26,10月-26,Saturday,October 3,2026,10,、阅读一切好书如同和过去最杰出的人谈话。,01:04:02,01:04:02,01:04,10/3/2026 1:04:02 AM,11,、越是没有本领的就越加自命不凡。,10月-26,01:04:02,01:04,Oct-26,03-Oct-26,12,、越是无能的人,越喜欢挑剔别人的错儿。,01:04:02,01:04:02,01:04,Saturday,October 3,2026,13,、知人者智,自知者明。胜人者有力,自胜者强。,10月-26,10月-26,01:04:02,01:04:02,October 3,2026,14,、意志坚强的人能把世界放在手中像泥块一样任意揉捏。,03 十月 2026,1:04:02 上午,01:04:02,10月-26,15,、最具挑战性的挑战莫过于提升自我。,十月 26,1:04 上午,10月-26,01:04,October 3,2026,16,、业余生活要有意义,不要越轨。,2026/10/3 1:04:02,01:04:02,03 October 2026,17,、一个人即使已登上顶峰,也仍要自强不息。,1:04:02 上午,1:04 上午,01:04:02,10月-26,MOMODA POWERPOINT,Lorem ipsum dolor sit amet,consectetur adipiscing elit.Fusce id urna blandit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis ut cursus.,感谢您的下载观看,专家告诉,
展开阅读全文