精华内容
下载资源
问答
  • TO封装--

    2021-11-03 10:11:15
    。。。。
    展开全文
  • uniapp navto.js

    一、新建navto.js

    const navto = function(url, data) {
    	// url参数拼接
    	url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
    	
    	uni.navigateTo({
    		url
    	})
    }
    
    // 返回上一页
    const navBack = function(){
    	uni.navigateBack();
    }
    
    // 格式化参数对象
    function param(data) {
    	let url = ''
    	for (var k in data) {
    		let value = data[k] !== undefined ? data[k] : ''
    		url += '&' + k + '=' + encodeURIComponent(value)
    	}
    	return url ? url.substring(1) : ''
    }
    
    export{
    	navto,
    	navBack
    }
    

    二、全局挂载

    import * as navTo from '@/common/navto'
    Vue.prototype.$navto = navTo;

    三、在template中内直接调用

    <view class="btn" @click="$navto.navto('login/login')">登录</view>
    <view class="btn" @click="$navto.navto('login/login',{'user':68889888,'pwd':123456})">登录</view>

    最终就是这样将参数拼接到url上 

    展开全文
  • 新建 navTo.js 文件 const togo = function(url,data){ url += (url.indexOf('?') < 0 ? '?' : '&') + param(data) uni.navigateTo({ url }) } export function param(data) { let url = '' for...

    新建 navTo.js 文件

    const togo = function(url,data){
    	url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
    	
    	uni.navigateTo({  
    		url
    	}) 
    }
     
    export function param(data) {
      let url = ''
      for (var k in data) {
        let value = data[k] !== undefined ? data[k] : ''
        url += '&' + k + '=' + encodeURIComponent(value)
      }
      return url ? url.substring(1) : ''
    }
    
    export {togo}
    

    挂载全局到 main.js

    import * as navTo from '@/utils/navTo'
    Vue.prototype.$navTo = navTo
    

    组件内使用

    handleEditShift (params){
    	let url = '/pages/template/stage/xxx/xxx/index.vue'
    	let param = params
    	this.$navTo.togo(url,param)
    }
    

    接收值

    onLoad(option) {
    	console.log(option, 'option')
    },
    
    展开全文
  • C++11封装thread类

    2020-12-25 09:57:44
    这是我在工作中自己封装的线程类,分享给大家,功能齐全,可以执行线程内部类,也可以很容易二次封装成线程池。 Thread_Controller.hpp文件 #include <iostream> #include <thread> #include <...

    这是我在工作中自己封装的线程类,分享给大家,功能齐全,可以执行线程内部类,也可以很容易二次封装成线程池。

    Thread_Controller.hpp文件

    #include <iostream>
    #include <thread>
    #include <mutex>
    #include <future>
    #include <sstream>
    #include "WE_Tools.h"
    #include "WE_Tools_Message.h"
    
    using namespace std;
    using namespace we_dev_attr;
    
    namespace we_thread {
    	
    	//Exception class
    	class thread_error : public logic_error {
    
    	public:
    
    		explicit thread_error(const char* _par_error) : logic_error(_par_error) {}
    		explicit thread_error(const string _par_error) : logic_error(_par_error) {}
    
    	};
    
    	class ___thread_controller {
    
    	public:
    		___thread_controller() {
    			
    			//The default is idle and ready to work
    			_me_thread_state = WE_TOOLS_THREAD_STATE::READY;
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			_me_thread_task = false;
    		}
    
    		~___thread_controller(){}
    
    
    		//Function: Carry out the task
    		template <typename _t_f>
    		inline bool Implement_task(_t_f&& _var_f) {
    			//get thread state
    			int _var_thread_state = Chek_thread_state();
    
    			//check thread Are the conditions met
    			if (_var_thread_state == WE_TOOLS_THREAD_STATE::WORK) {		//1.The condition is not satisfied because the thread is working
    
    				//Set error message
    				_me_error = WE_TOOLS_THREAD_WORK;
    
    				return false;
    
    			}
    
    			//*Template class internal function to address*
    			_me_func_ptr = (void(*)(void))Class_func_to_union_cast<void*>(_var_f);
    		
    			_me_error = WE_TOOLS_SUCCESS;
    
    			Tasks(&___thread_controller::Run,this);
    
    			return true;
    
    
    		}
    
    		inline unsigned long long Class_func_to_addr() {
    		
    		}
    		//Function: wait for the thread task to finish
    		//Note: it is a blocking function
    		inline bool Waite_thread_exit() {
    		
    			//check Does the thread have a task
    			if (!(_me_thread_task)) {
    				
    				_me_error = WE_TOOLS_THREAD_NO_TASK;
    
    				return false;
    			}
    
    			//Wait for thread execution to finish
    			_me_thread.join();
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			return true;
    
    		}
    
    		//Function: check and get a status of current work
    		inline int Chek_thread_state() {
    
    			return _me_thread_state;
    
    		}
    
    		//Function:	Set status
    		inline void Set_thread_state(int _par_state) {
    			
    			_me_thread_state = _par_state;
    
    		}
    
    		//Get thread ID
    		inline unsigned long long Get_thread_id() {
    			
    			//Using stream mode conversion
    			std::ostringstream _var_oss;
    
    			_var_oss << _me_thread.get_id();
    
    			std::string _var_stid = _var_oss.str();
    
    			unsigned long long _var_tid = std::stoull(_var_stid);
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			return _var_tid;
    
    		}
    
    
    		//Function:Let the thread execute the task
    		template <typename _t_f, typename... _t_p>
    		inline bool Tasks(_t_f&& _var_f, _t_p&&... _var_p) {
    
    			//get thread state
    			int _var_thread_state = Chek_thread_state();
    
    			//check thread Are the conditions met
    			if (_var_thread_state == WE_TOOLS_THREAD_STATE::WORK) {		//1.The condition is not satisfied because the thread is working
    
    				//Set error message
    				_me_error = WE_TOOLS_THREAD_WORK;
    
    				return false;
    
    			}
    
    			//Let the thread program perform this task
    			_me_thread = std::thread(std::forward<_t_f>(_var_f), std::forward<_t_p>(_var_p)...);;
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			_me_thread_task = true;
    
    			Set_thread_state(WE_TOOLS_THREAD_STATE::WORK);
    
    			return true;
    
    		}
    
    		//check thread state
    		inline bool Is_work() {
    			
    			int _var_thread_state = Chek_thread_state();
    
    			if (_var_thread_state == WE_TOOLS_THREAD_STATE::WORK) {
    					
    				return true;
    
    			}
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			return false;
    
    		}
            //stop
    		inline void Stop() {
    		
    			//check Does the thread have a task
    			if (!(_me_thread_task)) {
    
    				_me_error = WE_TOOLS_THREAD_NO_TASK;
    
    				return;
    			}
    
    			_me_thread_task = false;
    
    			//Wait for thread execution to finish
    			_me_thread.join();
    
    			_me_error = WE_TOOLS_SUCCESS;
    
    			return;
    
    		}
    
    
    
    	private:
    
    		std::thread _me_thread;				//Worker thread
    		int			_me_thread_state;		//running state
    		bool		_me_thread_task;		//Does the thread have a task
    		void		(*_me_func_ptr)(void);	//Pointer to the function to execute
    		std::string _me_error;				//error message
    
    		//Carry out the task
    		inline void Run() {
    
    			while (_me_thread_task) {
    
    				_me_func_ptr();
    
    			}
    
    		}
    
    		//Function:Class member function to address
    		template<typename dst_type, typename src_type>
    		dst_type Class_func_to_union_cast(src_type src)
    		{
    			union {
    				src_type _ptr;
    
    				dst_type _func_ptr;
    
    			}_un_addr_cast;
    
    			_un_addr_cast._ptr = src;
    
    			return _un_addr_cast._func_ptr;
    		}
    
    	};
    
    };

     

    WE_Tools_Message.h

    #pragma once
    //Error Message
    #define WE_TOOLS_THREAD_WORK					"The current thread is working and is not an available state to specify a new task for it"
    #define WE_TOOLS_THREAD_NO_TASK					"This thread has no tasks"
    #define WE_TOOLS_SUCCESS						"success"

    .WE_Tools.h

    #pragma once
    
    namespace we_dev_attr {	
    
    	enum WE_TOOLS_THREAD_STATE {
    
    		READY					= 0			,							//Threads are ready to work
    		WORK								,							//The current thread is not idle
    		BIND								,							//Task already bound
    	};
    };
    

    示列:

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    using namespace we_thread;
    
    int At(){
        printf("1\n");
    }
    
    int main(){
    
        ___thread_controller _var_thread;
    
        _var_thread.Implement_task(&At);
    
        //如果要停止可以使用stop
        //_var_thread.Stop();
        
        _var_thread.Waite_thread_exit();
    
    } 

    执行类内部函数,无需定义成静态成员(这样的传参方式是利用编译器为我们生成副本):

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    using namespace we_thread;
    
    class vb{
        public:
            void _print(){
                printf("1\n");            
            }
    };
    int main(){
    
        ___thread_controller _var_thread;
    
        _var_thread.Implement_task(&vb::_print);
    
        _var_thread.Waite_thread_exit();
    
    } 

    在类的内部执行函数(非副本):

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    using namespace we_thread;
    
    class vb{
        public:
            void run(){
                _var_thread.Task(&vb::_print,this);
            }
            void _print(){
                while(1){
                    printf("1\n");  
                }          
            }
    
        private:
        ___thread_controller _var_thread;
    };
    int main(){
    
        vb _test;
        _test.run();
    } 

    注意事项:

    Implement_task创建的线程会自动循环执行,可以使用stop方法结束,而Task的不会,需要自己在线程里加上循环,并且不能使用stop方法结束,需要用户自己去结束。

    一种是托管式,一种是非托管式。

     

     

    展开全文
  • 问题:PADS 改了PCB Decals ECO TO PCB封装没变 解决方法1:勾选Compare PCB Decal Assignment,如上图 方法2:删掉其他PCB匹配封装 Logic选中元器件->Edit Part 选中EditElectrical 只保留一个 ...
  • 三极管封装总结

    2021-07-21 14:16:55
    现在主流的封装有SOT与TO两种,下面分别介绍: SOT(Small Outline Transistor 小型晶体管) 这种封装一般用于管脚数小等于5的小型晶体管,三极管常用贴片封装,如SOT-23、SOT-223。 1.1引脚意义 SOT-23: 1 基极;...
  • uniapp封装,封装狂魔

    2021-11-25 21:01:32
    封装解决问题). 建一个utils文件夹,里面两个页面 1:公共请求一个页面 (request.js) 2:api接口一个页面 (api.js) (request.js)页面 export const request = ({ url, data = "", method = "get" }) => { ...
  • Proteus-元件封装图形(各种封装)

    千次阅读 2020-12-22 10:40:41
    .页脚封装名称与图形如下:DIL04EL817(光耦)稳压三极管7805P1一、晶体管TO92/TO226TO92/18TO72TO39/TO05TO18TO1TO220TO254SOT93TO274TO273ELINE...
  • 半导体封装种类

    2021-06-07 14:54:44
    TO-220/220F:F全塑封装,装到散热器上时不必加绝缘垫;220带金属片与中间脚相连,需要加绝缘垫。 TO-251:中压、大电流60A以下,高压7N以下环境。 TO-92:只有低压MOS(10A以下,耐压60V以下)和高压1N60/65在用,...
  • Vue 实现 xlsx 导入工具封装安装组件组件封装:exportExcel.vueHTMLJS使用HTMLJS 安装组件 npm install xlsx --save 组件封装:exportExcel.vue HTML 对上传按钮进行封装 <template> <el-button type=...
  • sop28封装尺寸

    千次阅读 2021-01-14 14:38:09
    12欢。迎下载 精品文档 DIMENSION SOP-28 DIMENSION (FIG. NO. DIM-SOP28-0103-B) UTC UNISONIC TECHNOLOGIES CO., LTD. 13欢。迎下载 精品文档 DIMENSION .........封装形式图片 国际统一简称 LDCC LGA LQFP PDIP T...
  • IC封装就是把Foundry生产出来的芯片裸片(die)封入一个密闭空间内,受外部环境、杂质和物理作用力的影响,同时引出相应的引脚,最后作为一个基本的元器件使用。IC测试就是运用各种方法,检测出在制造过程中,由于...
  • AD制作PCB封装

    千次阅读 2021-07-11 15:23:27
    在原理图中添加PCB封装 查看PCB库及封装 执行菜单命令”File(文件)“》》”Open(打开)“,弹出“Choose Document to Open(选择文档开启)”对话框, 选择元器件库存放的位置,即D:\Program Files (x86)\Altium ...
  • AD封装库的绘制

    千次阅读 2021-05-12 21:29:59
    封装库的绘制 使用AD16.1版本进行元器件封装的绘制 在上一次的AD使用中我们讲了使用别人的库来绘制原理图,PCB,这一次我们使用我们自己绘制的元器件库。 上一次的文章链接:AD的使用 意义在于什么 我们平时使用AD...
  • 常见封装及参数

    2021-03-30 14:56:37
    直插式 电阻 ...TO系列 场效应管 TO系列 芯片IC DIP 贴片式SMD 电阻 0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W 1210 1/3W 1812 1/2W 2010 3/4W 2512 1W 电容 无极性贴片电容 020
  • 从七种封装类型,看芯片封装发展史 用一句话介绍封装,那肯定是:封装是沟通芯片内部世界与外部电路的桥梁。...从结构方面可以看出封装的发展:TO→DIP→SOP→QFP→PLCC→BGA →CSP。 第一种:TO(Transis.
  • uniapp 全局方法封装

    2021-04-29 22:09:19
    /** * 页面跳转 * @author hhy * * @param {String} url 需要跳转的应用内非 tabBar 的页面的路径 * @param {Object} ...const to = (url, animationType = 'pop-in', animationDuration = 300) => { .
  • 封装一些简单的Shell脚本自从上次发完一篇有关Shell的脚本的文章之后取得了很大程度的反响,阅读量达到了6280,喜欢达到了300+,同时被收入了特别多的专题,如下图所示,所以打算再展示几个我封装的简单的脚本。...
  • 那么,我们可以考虑将request的请求类型(如:Get、Post、Delect请求)都封装起来。这样,我们在编写用例的时候就可以直接进行请求了。 1. 源码分析 我们先来看一下Get、Post、Delect等请求的源码,看一下它们都有...
  • 首先,安装Pyinstaller,进入PYTHON目录下Scripts安装,安装Pyinstaller,输入命令:pip install Pyinstaller一、单*.py文件封装cmd进入python程序项目目录,执行命令:pyinstaller -F -w –icon=xxx.ico main.py –...
  • React 路由 封装

    2021-05-08 11:03:05
    React 路由 封装主要目录路由列表在App.jsx页面引用路由组件注意 鸽了一段时间,终于回归React的阵营中,后面会完整制作一个项目,今天先讲一下路由,后续会和项目一并讲解。 主要目录 我发现很多博主讲封装,一是...
  • 一个简单的socket封装

    2021-02-12 20:27:10
    SSSocket, 意思是simple stupid socket interface目的:编写一个易于消息数据读写、非阻塞、跨平台的socket封装。目前用于手机网游客户端优点:1.采用非阻塞的连接和IO,即使是单线程也不会阻塞UI2.提供读写buffer3....
  • AD16画贴片封装

    千次阅读 2021-04-25 15:34:55
    最近在画PCB,发现没有某些元器件的封装,网上找挺费时间的也不一定找得到,所以重新学习如何画封装,第一次写博客记录一下。 一、新建集成元件库 首先新建一个集成库,用来放自己画的封装,常用的封装也可以拖到...
  • 能够封装鉴权路由组件实现登录访问控制功能 判断用户是否登录路由进入主页 未登录返回登录页 1.定义组件 1、分析组件需求 需要传入跳转组件 要跳转的路径 2、 定义私有路由组件。在 components 目录中创建 ...
  • el-dialog组件的二次封装一、背景二、 分析三、示例封装el-dialog 一、背景 element-ui组件的样式是固定的,比如我们常用的那些组件,table,button,icon,tab等等。当我们需要的样式和element组件有偏差的时候,...
  • Allegro中封装库中的封装更新到PCB中出现焊盘中心错位 今天在画一个板子的时候,直接复制的上一个工程的LIB,在导入原理图网表更新后,焊盘中心出现错位。 使用的是一个锅仔片的封装,出现错误如下图: 从上图可以...
  • 封装组件 局部 封装**/// 1.创建组件构造器对象const cpnC = Vue.extend({template: `});//2.注册组件Vue.component('my-cpn',cpnC);2.全局封装const app2 = new Vue({el: '#app2',components: {// cpn使用组件时的...
  • 1、封装及尺寸 2、3296精密可调电阻 3、水泥电阻 4、保险丝 5、压敏电阻与气体放电管 6、10K_NTC热敏电阻温度与阻值对应表 二、电容 1、无极电容封装及尺寸 2、安规电容,比如JNC-102M/400V 3、有极...
  • PCB各种封装命名尺寸

    2021-01-13 09:53:16
    1.DO-214和SMA、SMB、SMC封装,这其实是两种不一样的叫法,具体如下: DO-214AA (SMB), DO-214AB (SMC), DO-214AC (SMA). 但我个人比较喜欢用SMA、SMB、SMC的叫法,但看到DO-214这样的写法也要知道是什么,这三种...
  • 芯片封装,简单点来讲就是把Foundry生产出来的集成电路裸片(Die)放到一块起承载作用的基板上,再把管脚引出来,然后固定包装成为一个整体。它可以起到保护芯片的作用,相当于是芯片的外壳,不仅能固定、密封芯片,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 607,549
精华内容 243,019
关键字:

to253封装