小程序登录开发通常是调用wx.login获取code,然后发送到后台,后台请求微信拿到用户openId,然后根据openId查询用户,有就走登录流程然后返回token,没有则创建用户之后走登录流程然后返回token,也就是都需要返回一个有时效性的token给小程序端,来保持登录状态,并且后续请求都需要token来验证用户。 那么就有一个问题,就是token的时效性,token过期,后台返回认证授权失败,那么怎么做到无感刷新token,让用户即使token过期了自动刷新token呢?经过查询跟实践,我封装了一个请求类。 思路大致是根据后台返回的状态,如果返回的是授权失败,那么就会保存当前请求,调用刷新token的请求,成功之后再次发起之前保存的请求,这样就可以达到用户无感的刷新token。 具体封装类api.js如下,本次代码采用uniapp框架开发,实际项目中每次发起后台请求只需要调用req方法即可做到无感刷新token
2024-02-26 11:08:59 4KB 微信小程序
1
帝国 CMS开发的手赚网源码,多平台带文章资讯手机 APP 试 玩 网站源码 ,可自行后台增减平台 和 链接,和早先几 个 版本比较的话,这个版本功能更全,版面更为漂亮。已经带有一定的试玩平台数据,只需要把你的 推广 链接填上去就可以运行网站,当然你也可以自行 添加 试玩项目。
2024-02-24 09:54:43 22.37MB APP源码 APP源码
1
GHOST封装教程,让你轻松搞定自己定制系统,企业制作,让你无忧。本教程将封装的每个步骤详细讲解,图示例子清晰,图文并茂,让你更能轻松地定制属于自己的系统。
2024-02-05 21:00:31 3.17MB GHOST,系统,封装,教程
1
文章是redisUtils工具类的封装,和基于springboot环境的单元测试; 文中封装了redis的众多方法,希望对您有所帮助。
2024-01-22 15:58:05 305KB springboot redisUtils
1
1、编译出codec后,在server端添加该codec后,提示“incompatible assignment to mod:” 发现是因为codec段的modulename.xdc文件中声明模块信息的时候metaonly module MODULENAME inherits ti.sdo.ce.video.IVIDENC,中的“inherits ti.sdo.ce.video.IVIDENC”被注释掉啦,打开注释后,编译不出现该错误提示。2、编译codec阶段,没有出现问题,在编译server段时,link阶段,提示找不到codec中的符号SWAPDATA_TI_ISWAPDATA,改符号在swapdata.c、SWAPDATA.xdc、SWAPDATA_ti_priv.h三个文件中都有声明。 目前问题不是很确定,可能是修改了swapdata.c文件的#define GTNAME "ti.sdo.ce.examples.codecs.swapdata",修改前这个宏为#define GTNAME "codecs.swapdata"。3、在将生成的all.x64P编入app端
2024-01-18 13:29:47 32KB 封装 经验分享
1
1、电路系统分析 有些通信设备公司的项目中,射频工程师需要负责对整个RF 系统的电路进行系统分析,指导系统设计指标、分配单元模块指标、规范EMC 设计原则、提出配附件功能和性能要求等等。 2、电路原理设计 包括框图设计和电路设计,这是射频工程师所必须具备的基本技能。这也是由系统设计延伸而来的,如何实现系统设计的目标,就是电路原理设计的目的,它也是器件选型评估的“前因”,因为设计电路的过程也是一个器件选型的过程。 3、器件选型与评估 要实现电路的指标要求,选择合适的器件是必不可少的,这个过程其实与电路原理设计是同时进行的。如何选择相应的器件,相比较而言同类型器件中哪一个更合适我们的产品设计?成本、性能、工艺要求、封装、供应商质量、货期等等,更是需要考虑的因素。 4、软件仿真 不管是ADS,MWO,Ansoft 还是CST、HFSS,反正你总得会一到两个仿真软件的使用吧。仿真软件不能让你的设计达到百分百的准确度,但总不会让你的设计偏离基本方向,起码它们在定性的仿真方面是准确的。所以一定要学会使用一至两种或更多种仿真软件,它的基本作用就是让你能够定性的分析你的设计,误差总是有的
2024-01-18 13:12:12 61KB 封装
1
1.编程面向对象入门题目 2.新手的联系项目 3.提供源码
2024-01-17 22:47:28 370KB Java 面向对象 封装
1
1. 标准电阻:RES1、RES2;封装:AXIAL-0.3到AXIAL-1.0 两端口可变电阻:RES3、RES4;封装:AXIAL-0.3到AXIAL-1.0 三端口可变电阻:RESISTOR TAPPED,POT1,POT2;封装:VR1-VR5 2.电容:CAP(无极性电容)、ELECTRO1或ELECTRO2(极性电容)、可变电容CAPVAR 封装:无极性电容...
2024-01-17 18:48:22 64KB PROTEL 封装形式
1
0805封装尺寸/0402封装尺寸/0603封装尺寸/1206封装尺寸 封装尺寸与功率关系: 0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W 封装尺寸与封装的对应关系 0402=1.0mmx0.5mm 0603=1.6mmx0.8mm 0805=2.0mmx1.2mm 1206=3.2mmx1.6mm 1210=3.2mmx2.5mm 1812=4.5mmx3.2mm 2225=5.6mmx6.5mm 贴片电阻的功率是指通过电流时由于焦耳热电阻产生的功率。可根据焦耳定律算出:P=I2 R。 额定功率 : 是指在某个温度下最大允许使用的功率,通常指环境温度为70°C时的额定功率。 额定电压:可以根据以下公式求出额定电压。 额定电压(V)=√ 额定功率(W)&TImes; 标称阻值(Ω) 最高工作电压 :允许加载在贴片电阻两端的最高电压。 贴片电阻的封装与功率、电压关系如下表: 注意事项 : 设计和使用贴片电阻时,最大功率不能超过其额定功率,否则会降低其可靠性。 一
2024-01-17 16:03:24 118KB 贴片电阻 额定功率 模拟电路
1
/*====================================================================================================== 作 者: 许明龙 单 位: 兰州交通大学软件工程专业09级 联 系: 世上没用永远的陌生人,只有还未认识的朋友! QQ:494462498. Tel:13893256491 Email:xuhongming251@163.com 修改时间: 2011-6-5 =======================================================================================================*/ /*======================================================================================================== 如何使用? 1.引入DLL文件,引入头本文件,就已声明了导入函数 //要引入DLL的方法 //1、把SERIALPORTDLL1.dll和SERIALPORTDLL1.lib拷贝到工程目录下 //2、然后在 工程->设置->连接->分类->常规->对象/库模块输入:SERIALPORTDLL1.lib 2.调用Init初始化串口 3.调用SetReceiveFuntion(&ReveveChar);指定接收和处理数据的函数 4.实现void ReveveChar(WPARAM data, LPARAM port)这个函数 5.调用SendData发送数据 6.ClosePort(); ========================================================================================================*/ /*======================================================================================================= 函 数 名: Init 功 能: 打开并初始化串口 参数说明: UINT port //端口号 UINT baud //波特率 char parity = 'N' //校验位,默认为无校验位 UINT databits = 8 //数据位,一个字节的位数,默认为8位 UINT stopbit = 1 //停止位,默认为1位 使用例子: Init(2,9600); //打开串口2,波特率9600,其它值为默认值(无奇偶校验、数据位为8、停止位为1) Init(4,4800,'N',10);//打开串口4,波特率为4800,无奇偶校验,数据位为10,(停止位默认为1) ... ... ======================================================================================================*/ extern "C" __declspec(dllimport) void Init( UINT port, //端口号 UINT baud, //波特率 char parity = 'N', //校验位 UINT databits=8 , //数据位 UINT stopbit=1 //停止位 ); /*========================================================================================================== 函 数 名: SendData 功 能: 向串口发送数据,使用之前必须先调用Init函数初始化串口 参数说明: char data[] //要发送的数据 int datalen //发送数据的长度 使用例子: 例1: char a[] = {0x01,0x03,0x00,0x03,0x00,0x02,0x34,0x0B};//准备要发送的十六进制:01 03 00 03 00 02 34 0B SendData(a,8); //向串口发送十六进制数:01 03 00 03 00 02 34 0B 例2: char a[] = "$01001000020110*" //准备要发送的字符串$01001000020110* SendData(a,16); //向串口发送:$01001000020110* ============================================================================================================*/ extern "C" __declspec(dllimport) void SendData( char data[], int datalen ); /*=================================================================================================================== 函 数 名: SetReceiveFuntion 功 能: 指定接收数据的函数,指定好后,串口接收缓冲区每有一个字节的数据时会自动触发和调用所指定的函数 参数说明: a、参数需要一个函数指针, b、该指针指向一个用于接收数据的函数(该函数由用户自己声明、定义和实现), c、用户定义该函数时必须要满足一下条件: 1、该函数为全局函数 2、返回值为void 3、形参为两个,类型为:形参为UINT,LONG 使用例子: 1、void ReveveChar(WPARAM data, LPARAM port);//声明一个用于接收数据的全局函数,本头文件已默认声明这个函数,用户无需再次声明 2、 CString strTemp; void ReveveChar(WPARAM data, LPARAM port)//实现这个接收数据并处理数据的函数 { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 3、SetReceiveFuntion(&ReveveChar);//指定void ReveveChar(WPARAM data, LPARAM port);该函数接收和处理数据 =========================================================================================================================*/ extern "C" __declspec(dllimport) void SetReceiveFuntion(void (*pfCallBack)(WPARAM data, LPARAM port)); /*================================================= 函 数 名: ClosePort 功 能: 关闭由Init函数打开的串口 参数说明: 无需参数 调用例子: ClosePort(); =================================================*/ extern "C" __declspec(dllimport) void ClosePort(); /*=============================================================================================================== 函 数 名: ReveveChar 功 能: 每当串口接收到一个字符(字节)时就会自动触发和调用这个函数, 用户只需实现不必也不能去亲自调用, 注意:打开串口后,必须要调用SetReceiveFuntion(ReveveChar) 参数说明: data //接收到的是串口中的一个字节数据 port //端口号,表明是哪个端口接收到的数据 调用例子: 只要实现,无需自己调用。 实现处理数据可参考如下简单的例子,思想是边接收数据边处理 void ReveveChar(WPARAM data, LPARAM port) { static int RecevCount = 0; //用于接收字节数的计数 char str[512] = ""; sprintf(str,"%02x",data); //接收十六进制数,并格式化为字符形式 strTemp += str; RecevCount++; if (RecevCount >= 8) //接收到数据长度等于了协议长度,则开始进行协议的处理 { RecevCount = 0; strTemp = "接收到得数据协议为" + strTemp; AfxMessageBox(strTemp); strTemp = ""; } } 说明:本函数并非为导出函数,写在这里仅仅是起到声明一个函数的作用,用户也可以删除掉,自己声明和实现! ===============================================================================================================*/ void ReveveChar(WPARAM data, LPARAM port);
2024-01-17 15:05:23 10KB SerialPort SerialPort封装
1