max_input_vars 表示接受多少 输入的变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量) 指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。 如有超过指令指定数量的输入变量,将会导致 E_WARNING 的产生,更多的输入变量将会从请求中截断。
; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000
max_input_vars = 10000
在axios文件中导入router,console输出为undefined
(js/ts中无法使用vue声明的文件/不能使用useRouter ,useRoute,他们需要在setup中调用执行后才能用)
解决方法(推荐)
导入项目中已配置好的router
import router from '@/router'
其他方法
window.location.href = "/login"
VSCODE 配置用户代码片段:通过header添加避免重复包含问题。
{
"c c++ Header": {
"scope": "c,cpp",
"prefix": "header",
"body": [
"#ifndef __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
"#define __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
"",
"$0",
"",
"#endif /* __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__ */"
],
"description": "Add #ifndef,#define and #endif"
}
}
两年前,曾经用过 STC的单片机,当时对他的那个ISP下载功能很是感兴趣,且当时也想实现一个IAP 升级办法,又不想占用他现有的fash 空间,毕竟还是有点小。就想办法着手研究了一下,就写了一段代码在8051内核的64K空间依次读取所有的数据,最后得到了一个 2k 多一点的 ISP 所用的 bin 文件,反汇编得到汇编文件,就在那花功夫细细地看了看实现方法,分析得出了基本的下载协议,两年后,我觉得这些东西可以考虑公开了。阅读全文→
通过第三方程序实现对STC单片机的程序下载,可以方便进行现场的调试和更新。特别是对于设计远程程序更新、无线程序下载与调试等功能有帮助。阅读全文→
C++11引入了=default和=delete关键字,用于控制类的特殊函数(如构造函数、赋值运算符等)的行为。=default允许显式要求编译器提供默认实现,提高代码可读性和性能;=delete则阻止这些函数的使用,增强类型安全。阅读全文→
std::promise 提供了一种灵活的方式来在不同线程之间传递几乎任何类型的数据。阅读全文→
C++11引入了一个新的较实用的模板类型,std::tuple,也即是元组。元组是一个固定大小的不同类型(异质,heterogeneous)值的集合,也即它可以同时存放不同类型的数据。C++已有的std::pair类型类似于一个二元组,可看作是std::tuple的一个特例,std::tuple也可看作是std::pair的泛化。std::pair的长度限制为2,而std::tuple的元素个数为0~任意个。阅读全文→
COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
间隔超时=ReadIntervalTimeout
总超时 = ReadTotalTimeoutMultiplier * 字节数 + ReadTotalTimeoutConstant
串口读取事件分为两个阶段(我以Win32 API函数ReadFile读取串口过程来说明一下)
第一个阶段是:串口执行到ReadFile()函数时,串口还没有开始传输数据,所以串口缓冲区的第一个字节是没有装数据的,这时候总超时起作用,如果在总超时时间内没有进行串口数据的传输,ReadFile()函数就返回,当然 没有读取到任何数据。而且,间隔超时并没有起作用。
第二阶段:假设总超时为20秒,程序运行到ReadFile(),总超时开始从0 计时,如果在计时到达10秒时,串口开始了数据的传输,那么从接收的第一个字节开始,间隔超时就开始计时,假如间隔超时为1ms,那么在读取完第一个字节后,串口开始等待1ms,如果1ms之内接收到了第二个字节,就读取第二个字节,间隔超时重置为0并计时,等待第三个字节的到来,如果第三个字节到来的时间超过了1ms,那么ReadFile()函数立即返回,这时候总超时计时是没到20秒的。如果在20秒总计时时间结束之前,所有的数据都遵守数据间隔为1ms的约定并陆陆续续的到达串口缓冲区,那么就成功进行了一次串口传输和读取;如果20秒总计时时间到,串口还陆陆续续的有数据到达,即使遵守字节间隔为1ms的约定,ReadFile()函数也会立即返回,这时候总超时就起作用了。
总结起来,总超时在两种情况下起作用
第一:串口没进行数据传输,等待总超时时间那么长ReadFile()才返回。非正常数据传输
第二:数据太长,总超时设置太短,数据还没读取完就返回了。读取的数据是不全的
间隔超时触发是有条件的
第一:在总超时时间内。
第二:串口进行了数据的传输。
成功的进行一次串口数据的传输和读取,只有总超时和间隔超时相互参与配合才能完成
PHP中的new static()是一个非常实用的语法,它可以帮助我们实现基于对象的一个非常重要的特性——多态性。具体来说,new static()可以在父类中创建一个子类的实例,实现不同子类之间的调用。下面,我将深入介绍new static()语法及其用法。 阅读全文→
瀑布式开发与敏捷开发的区别是:瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。而敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,二者开发方式不同。这就是瀑布式开发与敏捷开发的区别。阅读全文→
桌面清空缓存的解决办法(ie4uinit -show)阅读全文→