.版本2.子程序窗口_截图,字节集,公开,截取指定窗口的位图,可截取窗口中指定区域,最小化窗口或不可见窗口无法截取位图.参数窗口句柄,整数型,,欲截取窗口图片的窗口句柄.参数左边,整数型,可空,默认为0在窗口中截取图片的左边(相对于窗口的左边偏移坐标).参数顶边,整数型,可空,默认为0在窗口中截取图片的顶边(相对于窗口的顶边偏移坐标).参数宽度,整数型,可空,在窗口中截取图片的宽度(若为空,则截取整个窗口位图).参数高度,整数型,可空,在窗口中截取图片的高度(若为空,则截取整个窗口位图).子程序窗口_判断色彩度相同数,逻辑型,公开,满足最低相同数目返回真,否则返回假.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数色,整数型,,欲判断的颜色色彩度(色彩度:0-255).参数最低,整数型,,最低相同的数目.参数左下角,识图_坐标,可空,判断范围的左下角坐标,默认为0.参数宽度,整数型,,向右的范围宽度.参数高度,整数型,,向上的范围高度.参数返回相同数,整数型,参考可空.子程序窗口_取颜色,整数型,公开,取出窗口中指定点的颜色值(返回十进制颜色值,失败返回-1).参数窗口句柄,整数型,,欲取颜色值所在窗口的句柄.参数坐标X,整数型,,欲取的颜色值在窗口中的横坐标.参数坐标Y,整数型,,欲取的颜色值在窗口中的纵坐标.子程序窗口_取颜色数,整数型,公开,取出窗口中指定范围内某种颜色的数目,失败返回-1,未找到返回0.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数颜色,整数型,,欲判断的十进制颜色.参数左边,整数型,可空,范围左边,默认为0.参数顶边,整数型,可空,范围顶边,默认为0.参数宽度,整数型,,范围矩形宽度.参数高度,整数型,,范围矩形高度.参数相似度,整数型,可空,可空:无误差(0-255)RGB误差值无误差是带误差效率一半.子程序窗口_取最多色,整数型,公开,取出窗口中指定范围内最多的一种颜色值,返回十进制颜色值,失败返回-1.参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数左边,整数型,可空,范围左边,默认为0.参数顶边,整数型,可空,范围顶边,默认为0.参数宽度,整数型,,范围矩形宽度.参数高度,整数型,,范围矩形高度.参数数目,整数型,参考可空,返回该颜色的数目.子程序窗口_找色彩,识图_坐标,公开,在窗口中指定范围内查找符合条件的色彩度,返回第一个符合条件的坐标(失败或未找到返回-1坐标).参数窗口句柄,整数型,,指定的窗口句柄(对于最小化窗口或不可见窗口无效).参数色彩度低,整数型,,欲寻找色彩度范围-低位(色彩度:0-255).参数色彩度高,整数型,,欲寻找色彩度范围-高位(色彩度:0-255).参数左边,整数型,可空,寻找范围-矩形左边,默认为0.参数顶边,整数型,可空,寻找范围-矩形顶边,默认为0.参数宽度,整数型,,寻找范围-矩形宽度.参数高度,整数型,,寻找范围-矩形高度
2025/3/28 20:14:25 119KB 识图模块
1
1.虚函数是可以[New一个对象的时候要根据虚函数的函数体来填虚表;
而内联函数没有函数体,只是在预编译阶段展开]内联的,这样就可以减少函数调用的开销,提高效率(错误)2.一个类里可以同时存在[同一个类里无论什么函数都不能函数名和参数完全一样]参数和函数名都相同的虚函数与静态函数(错误)3.父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类指针(指向该子类对象)[特殊情况,参见题5],会调用父类的析构函数(正确)//任何情况下删除子类都会调用到父类的析构函数4.对于下面的类CA,sizeof(CA)=_B_:A.4B.8C.12D.16classCA{public:CA();virtual~CA();//因为有虚函数,所以会有4个字节的虚表指针private:intm_iTime;//成员变量4个字节public:intGetTime();intSetTime(intiTime);};5.下面这段程序,打印结果是_A_:A.1B.2C.3D.以上都不对intg_iCount=0;classCParent{public:CParent(){}~CParent(){g_iCount+=1;}};classCSon:publicCParent{public:CSon(){}~CSon(){g_iCount+=2;}};main(){CParent*p=newCSon();deletep[由于p被声明成父类指针,并且父类和子类的析构函数都非虚,因此delete操作只能根据p指针声明的类型来调用父类的析构函数];std::coutPrint();[由于父类和子类的Print函数都非虚,所以根据指针类型决定调用关系]}8.请问下面这段程序的输出结果是_C_:A.2,1,B.2,2,C.1,2,D.1,1,classCP
2025/3/28 16:17:55 392KB 华为 C++ 笔试题
1
在汽车电子领域,CAN(ControllerAreaNetwork)是一种广泛使用的通信协议,尤其在现代车辆的分布式电子系统中。
标题“J2012-DA故障诊断代码定义和故障类型字节定义”涉及到的是与CAN网络相关的故障诊断标准。
J2012是特定于汽车行业的一个标准,它规定了如何解析和理解车载网络中的错误代码,以便于故障排查和维修。
描述中提到的“数字附件电子表格”很可能是一个包含详细信息的表格,列出了各种J2012-DA故障诊断代码及其对应的故障类型字节定义。
这样的表格对于技术人员来说是非常宝贵的资源,因为他们可以快速查找并理解车辆系统中出现的问题。
故障诊断代码(DiagnosticTroubleCodes,DTCs)是车辆电子系统用于报告问题的编码方式。
它们通常由三个或四个字母或数字组成,例如"P0100",其中第一位表示是制造商特有还是通用代码,接下来的两位或三位则标识具体的故障类型。
在J2012-DA标准中,这些代码可能按照特定的结构和规则进行组织,以便于工程师理解和处理。
故障类型字节定义是DTCs的组成部分,它们提供了关于故障性质的更详细信息。
这些字节可能包括故障发生时的数据,如传感器读数、系统状态等,帮助确定故障的具体原因。
通过对这些字节的解读,技术人员可以更深入地了解故障发生的情况,从而采取适当的维修措施。
在文件名称列表中的“J2012DA_201812”,可能指的是这个标准的一个更新版本,发布于2018年12月。
这意味着随着时间的推移,标准可能会进行修订以适应新的技术和需求。
了解J2012-DA故障诊断代码及其故障类型字节定义对汽车行业的技术人员至关重要。
他们需要熟悉这些标准,以便有效地诊断和修复车辆的电气和电子系统问题。
这份压缩包文件提供的详细信息将帮助他们快速定位问题,提高工作效率,减少车辆停机时间,确保行车安全。
通过持续学习和应用这些知识,技术人员可以在日益复杂的汽车技术环境中保持竞争力。
2025/3/23 16:49:38 1.93MB can
1
STM32AD7606控制方法代码主要涉及了嵌入式系统中微控制器STM32与高精度模数转换器AD7606的交互技术。
STM32是基于ARMCortex-M内核的微控制器,广泛应用于各种嵌入式硬件设计中,而AD7606是一款16位、8通道同步采样模拟到数字转换器,常用于工业自动化、医疗设备和测试测量系统等需要高精度信号采集的场合。
在STM32与AD7606的通信中,一般采用SPI(SerialPeripheralInterface)或I2C接口。
SPI是一种高速、全双工、同步串行通信协议,适合短距离高速数据传输;
I2C则是一种多主机、双向两线制的总线协议,适合连接低速外设,但数据速率较低。
由于AD7606支持这两种通信模式,开发人员可以根据实际需求选择合适的接口。
1.**SPI配置**:需要在STM32的HAL库或LL库中初始化SPI接口,包括设置时钟源、时钟频率、数据帧格式、极性和相位等参数。
例如,可以配置SPI工作在主模式,数据从MISO引脚接收,MOSI引脚发送,通过NSS引脚实现片选。
2.**AD7606配置**:在初始化过程中,需要设置AD7606的工作模式,如单端或差分输入、增益、采样率等。
这些配置通常通过SPI或I2C发送特定的命令字节来完成。
3.**读写操作**:STM32通过SPI或I2C向AD7606发送读/写命令。
写操作可能涉及设置转换器的寄存器,比如配置采样率、启动转换等。
读操作则会获取转换后的数字结果。
在SPI中,通常需要在读写操作之间插入一个空时钟周期(dummybit)来正确同步数据的传输。
4.**中断处理**:在连续转换模式下,AD7606可能会生成中断请求,通知STM32新的转换结果已准备好。
STM32需要设置中断服务函数,处理中断请求并读取转换结果。
5.**数据处理**:读取的转换结果通常为二进制码,需要进行相应的转换,如左对齐或右对齐,然后根据AD7606的参考电压计算实际的模拟电压值。
6.**电源管理**:AD7606可能有低功耗模式,可以通过控制命令进入或退出。
在不需要转换时,关闭ADC以节省能源。
7.**错误检测**:程序中应包含错误检测机制,例如检查CRC校验或超时,以确保数据的完整性和系统的稳定性。
8.**代码实现**:在实际的代码实现中,可以使用HAL或LL库提供的函数进行硬件抽象,简化编程。
例如,`HAL_SPI_TransmitReceive()`函数可用于发送和接收SPI数据,`HAL_Delay()`用于控制延时,以及`HAL_ADC_Start()`和`HAL_ADC_PollForConversion()`用于启动转换和等待转换完成。
在项目中,开发者通常会创建一个AD7606的驱动库,封装上述操作,以方便其他模块调用。
这个驱动库可能包括初始化函数、配置函数、读取转换结果的函数等,使得系统设计更加模块化和易于维护。
通过理解这些知识点,并结合提供的AD7606压缩包中的代码,你可以实现STM32对AD7606的精确控制,从而进行高精度的模拟信号采集和处理。
2025/3/19 17:28:35 78KB stm32 arm 嵌入式硬件
1
单片机,特别是MCS-51系列,是电子工程领域广泛应用的微控制器。
MCS-51单片机的内部资源包括一个8位的CPU,4KB的掩膜ROM程序存储器,128字节的内部RAM数据存储器,2个16位的定时器/计数器,1个全双工异步串行口,5个中断源以及两级中断优先级控制器。
此外,还有时钟电路,这对于单片机的运行至关重要。
MCS-51的外部时钟可以通过XTAL1和XTAL2引脚接入外部振荡信号源。
指令周期是以机器周期为基本单位,机器周期由12个振荡周期组成,等于6个状态周期。
在MCS-51中,RAM有两个可寻址区域,分别是20H-2FH的16个单元和字节地址为8的倍数的特殊功能寄存器(SFR)。
参数传递在子程序中通常通过寄存器或片内RAM进行。
中断程序的返回通常使用RETI指令,而在返回主程序前需要恢复现场。
串行口工作方式1的一帧数据包含10位,波特率的设定公式取决于具体应用。
中断响应时间通常在3-8个周期之间,最短响应时间是在CPU查询中断标志的最后一个机器周期后立即执行LCALL指令,需要3个机器周期。
单片机的时钟产生有两种方式:内部和外部。
51单片机的存储器包括ROM和RAM。
在扩展外部存储器时,P0口作为数据和地址总线的低8位,而P3.3口的第二功能是INT1。
中断矢量地址如外部中断0为0003H,外部中断1为0013H。
MCS-51的I/O端口有三种操作模式:读端口数据,读端口引脚和输出。
地址译码方法包括部分地址译码、全地址译码和线选法。
直接寻址可以访问SFR、内部数据存储器低128字节以及位地址空间。
P0口可以作为真正的双向数据总线口或通用I/O口,但作为后者时是准双向口。
在定时/计数器的工作方式中,只有T0能工作于方式三,用于生成波特率。
串行通信的一帧数据包括起始位、数据位、奇偶校验位和停止位。
波特率表示每秒传输二进制位的数量。
中断响应时间是从PC指针到转向中断服务程序入口地址所需的机器周期数。
定时器T0和T1在工作方式1下为16位计数器,范围0-65535。
MCS-51的堆栈是向上生长的,SP始终指向栈顶。
入栈操作是先SP加1再压入数据,而出栈则先弹出数据再SP减1。
MCS51单片机的内部资源包括并行I/O口、定时器/计数器、串行接口和中断系统。
它有8种寻址方式,包括寄存器、直接、立即、寄存器间接、相对、页面、变址和位寻址。
变址寻址是基于16位的程序计数器PC或数据指针DPTR作为基址寄存器,结合8位的累加器A作为变址寄存器。
MCS-51单片机具有111条指令,按长度分为单字节、双字节和三字节指令,并按执行所需的机器周期数进一步分类。
这些指令构成了MCS-51强大的处理能力,使其能够在各种嵌入式系统中发挥关键作用。
理解和掌握这些知识点对于单片机的学习和期末考试至关重要。
2025/3/16 17:44:05 323KB
1
1. 简介FindBugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。
不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用Visitor模式。
2. 使用时机 开发阶段  当Developer完成了某一部分功能模块开发的时候(这通常是指代码撰写完成,并已debug通过之后),可藉由FindBugs对该模块涉及的java文件进行一次扫描,以发现一些不易察觉的bug或是效能问题。
交付新版的时候,开发团队可以跑一下FindBugs,除掉一些隐藏的Bug。
FindBugs得出的报告可以作为该版本的一个参考文档一并交付给测试团队留档待查。
  在开发阶段使用FindBugs,一方面开发人员可以对新版的品质更有信心,另一方面,测试人员藉此可以把更多的精力放在业务逻辑的确认上面,而不是花大量精力去进一些要在特殊状况下才可能出现的BUG(典型的如NullPointerDereference)。
从而可以提高测试的效率。
 维护阶段这里指的是系统已经上线,却发现因为代码中的某一个bug导致系统崩溃。
在除掉这个已暴露的bug之后,为了快速的找出类似的但还未暴露的bug,可以使用FindBugs对该版的代码进行扫描。
当然,在维护阶段使用FindBugs往往是无奈之举,且时间紧迫。
此外,如果本来在新版交付的时候就使用过FindBugs的话,往往意味着这种bug是FindBugs还无法检测出的。
这也是FindBugs局限的地方。
FindBugs不能发现非java的Bug。
对于非java撰写的代码,如javascript,SQL等等,要找出其中可能的bug,FindBugs是无能为力的。
当然,javascript中的bug似乎还不至于使系统崩溃,而SQL中的bug往往又跟业务逻辑相关,只要测试仔细一些应该是可以发现的。
FindBugs不过是一个工具。
作为开发人员,当然首先要在编程的时候努力避免引入bug,而不要依赖于某个工具来为自己把关。
不过由于代码的复杂性,一些隐藏的bug确实很难靠咱们的肉眼发现。
这时,应用一些好的工具或许就可以帮你发现这样的bug。
这便是FingBug存在的价值。
2025/3/6 5:07:47 4.11MB findbugs 插件 eclipse
1
此程序完成的是FPGA接收上位机发送的多字节串口数据的工作,并把不同的字节分配给不同的寄存器,以完成相应的控制工作。
(内含详细说明)
2025/3/5 12:37:38 4KB Verilog 串口接收 多字节
1
一个Linux下的图形化的串口调试工具。
使用GTK编程实现:1) 串口基本收发2) 串口配置(串口,速率,数据位,停止位,奇偶校验,数据控制)3) 串口配置的保存和载入(串口,速率,数据位,停止位,奇偶校验,数据控制)4) 串口HEX显示接收数据5) 串口接收数据和发送数据的计数显示(按字节)6) 串口接收数据的捕获(捕获到固定文件,但可以是追加捕获或是覆盖捕获)7) 文件发送(选择指定文件去发送)8) 串口HEX发送(以16进制的方式发送输入字符)9) 连续定时间间隔发送数据,发送间隔时间可以自己设置10) 面板托盘显示(可以隐藏或显示)11) 终端控制功能(像minicom那样可以直接在终端输入进行响应)12) 可配置默认启动参数.配置后以后启动则以默认启动参数打开串口13) 本地回显.
2025/3/4 22:42:50 474KB linux 串口 调试 源码
1
在家工作HomeWork是一个自治实用程序,用于查找,共享和重用合同的家庭住址。
家庭地址是一个专用帐户,特定控制器可以在其中部署任意合同。
与标准合同部署不同,标准部署地址是由刚性因素(例如部署者的现时或合同的创建代码)确定的,而家庭地址合同部署则放宽了通常的限制,并允许将任何合同部署到特定地址,对于新合同如果原始合同被删除,则将合同重新部署到相同的地址。
每个家庭地址由一个特定的32字节密钥唯一标识。
每个密钥都有一个专用的控制器,该帐户具有将合同部署到相应家庭地址的专有权利。
默认情况下,每个密钥最初由其地址与所述密钥的前二十个字节匹配的帐户控制。
或者,对于任何提交帐户,都可以
2025/3/3 6:48:24 145KB homework ethereum smart-contracts account
1
史上最全2019最新银行卡bin表单、包含excel表,mysql数据库sql文件,内容包含“发卡行名称及机构代码、卡名、ATM、POS、磁道、起始字节、长度、主帐号、卡bin、卡类型”等字段,一键导入即可使用、方便快捷。
2025/2/24 6:03:11 187KB 开发、运维 java 银行卡 mysql
1
共 356 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡