sw

(一)linux驱动之led

余生长醉 提交于 2020-02-04 01:40:51
一、我的第一个linux驱动程序 1.1、采用的linux板子 我采用的是 正点原子 的linux板子,觉得原子的板子还是很不错的。 1.2、硬件原理 由于正点原子使用的设计是通过电平 拉低 是点亮led, 拉高 则是关闭led。 1.3、个人理解的linux驱动流程 1.构建驱动加载和卸载函数 2.申请设备号,设备号可以指定,或者让系统自动分配 3.初始化创建的cdev结构体。 4.最后自动创建设备节点 1.4、驱动代码 # include <linux/module.h> # include <linux/init.h> # include <linux/kernel.h> # include <linux/fs.h> # include <linux/slab.h> # include <linux/io.h> # include <linux/uaccess.h> # include <linux/device.h> # include <linux/cdev.h> # define NEWCHRLED_NAME "newchrled" struct newchrled { struct cdev cdev ; struct class * class ; struct device * device ; dev_t devid ; int major ; int

pwa介绍学习

柔情痞子 提交于 2020-02-03 23:11:36
1.PWA简介: Progressive Web App 是由谷歌提出推广的,在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验。 2.PWA到底有哪些过人之处(特性)? 1、Installability(可安装性):添加到主屏 2、App Shell:第一次渲染渲个壳、等异步数据来了再填充 3、Offline Web App (离线能力) 4、Re-engageable:推送通知的能力。推送通知依赖Service Worker与HTTP Push,不过默认的支持是GCM(Google提供的云服务) 将Web和App的技术相结合: 不需要安装 快速加载 推送消息 桌面图标 全屏体验 3.PWA核心技术: Web App Manifest App shell Service worker push Notifion 4.manifest.json 配置文件 添加主屏配置 <link rel="manifest" href="/manifest.json"> 5.Service worker 用来实现页面的缓存和离线, 后台通知等功能 Service Worker 是什么? service worker 是独立于当前页面的一段运行在浏览器后台进程里的脚本。 要求:需要HTTPS本地调试localhost 浏览器支持(目前andorid的chrome部分支持)

华为交换机和华为交换机之间能ping通

こ雲淡風輕ζ 提交于 2020-02-02 00:03:35
华为交换机和交换机之间互相ping通配置如下: sw-1配置: <Huawei>sy 进系统视图 (默认在用户视图) [Huawei]sysname SW-1 修改主机名为SW-1 [SW-1]interface Vlanif 1 进vlan 1接口 [SW-1-Vlanif1]ip address 192.168.1.100 24 配置ip地址和子网掩码 SW-2配置: <Huawei>sy 进系统视图 (默认在用户视图) [Huawei]sysname SW-2 修改主机名为 SW-2 [SW-2]interface Vlanif 1 进vlan 1接口 [SW-2-Vlanif1]ip address 192.168.2.100 24 配置IP地址和子网掩码 AR1配置: <Huawei>system-view 进系统视图 (默认在用户视图) [Huawei]sysname AR-1 修改主机名为AR-1 [AR-1]interface GigabitEthernet 0/0/0 进g0/0/0接口 [AR-1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 配置IP地址和子网掩码 [AR-1-GigabitEthernet0/0/0]quit 退到上一层的系统视图 [AR-1] [AR-1]interface

C#多线程——同步

有些话、适合烂在心里 提交于 2020-01-29 05:06:55
多个线程(不仅仅局限于相同进程)如果需要访问相同的可变资源的话就可能需要考虑到线程同步的手段。CPU的线程和进程管控我这里就不去说了,计算机组成原理里面的东西 那么既然要让线程的步调一致,那么我们首先可以想到的是,如果一个线程没有完成我们就等,一直等到它完成,但是这种方法会耗费CPU的资源 Stopwatch sw = Stopwatch.StartNew(); Thread t1 = new Thread(() => { Thread.Sleep(1000); result = 100; }); t1.Start(); Thread.Sleep(500); while (t1.IsAlive) ; Console.WriteLine(sw.ElapsedMilliseconds); Console.WriteLine(result); 除了这种方式,还可以做轮询的方式,因为傻傻的等实在是太浪费资源了,那么我们每次都去检查一下线程是不是在跑就行了 Stopwatch sw = Stopwatch.StartNew(); Thread t1 = new Thread(() => { Thread.Sleep(1000); result = 100; }); t1.Start(); Thread.Sleep(500); while (t1.IsAlive) Thread.Sleep

ASP.net 文件下載

只谈情不闲聊 提交于 2020-01-23 07:52:11
用时候当系统文件关联直接下载的话会调用程序打开,或者想验证后才能给用户下载,那么可以用这个方法实现 private void FileDown(string strPath) { System.IO.FileInfo file = new System.IO.FileInfo(strPath); if (file.Exists) { Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.FullName, System.Text.Encoding.UTF8)); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.Filter.Close(); Response.WriteFile(file.FullName); Response.End(); } else { ClientScript.RegisterStartupScript(GetType(), "", "<script language='javascript'

java获得异常的详细StackTrace

我只是一个虾纸丫 提交于 2020-01-19 12:00:31
欢迎访问自建博客原文: http://www.e-lionel.com/index.php/2019/12/18/150/ 将异常的详细StackTrace提取成字符串 然后进行相应的操作 StringWriter sw = new StringWriter ( ) ; PrintWriter pw = new PrintWriter ( sw ) ; e . printStackTrace ( pw ) ; String msg = sw . toString ( ) ; 来源: CSDN 作者: lionel0724 链接: https://blog.csdn.net/lionel0724/article/details/104036645

写日志

╄→尐↘猪︶ㄣ 提交于 2020-01-18 10:32:37
/// <summary> /// 写日志文件 /// </summary> /// <param name="sMsg"></param> public void WriteLog(string sMsg, string fileType) { if (sMsg != "") { string directoryPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + " \\log "; //string directoryPath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath+" \\log";// System.Web.HttpContext.Current.Request.PhysicalApplicationPath; //+" \\log";// 路径 string filename = DateTime.Now.ToString("yyyyMMdd") + fileType + ".log";//文件名 try { if (!Directory.Exists(directoryPath))//验证是否有路径 { Directory

使用 Zuul 聚合多个微服务的 Swagger 文档

时间秒杀一切 提交于 2020-01-15 05:46:06
在 Spring Boot 中集成 Swagger 可参考之前的文章: Spring Boot 2 集成 Swagger , 在各个微服务中的配置与之相同;本文仅介绍在 Zuul 中的配置 在 Zuul 项目中添加配置 @Configuration @EnableSwagger2 public class SwaggerConfig { @Autowired ZuulProperties properties; @Primary @Bean public SwaggerResourcesProvider swaggerResourcesProvider() { return () -> { List<SwaggerResource> resources = new ArrayList<>(); properties.getRoutes().values().stream() .forEach(route -> resources .add(createResource(route.getServiceId(), route.getServiceId(), "2.0"))); return resources; }; } private SwaggerResource createResource(String name, String location, String

ShellExecuteEx 函数说明

纵饮孤独 提交于 2020-01-14 22:23:53
定义:可以使用 ShellExecuteEx 打开文件或执行程序 具体的使用教程可以参考:https://www.cctry.com/thread-298120-1-1.html 他的博客写的也很清楚:https://www.cnblogs.com/blogpro/p/11343975.html 我的写的内容不全,刚开始学习,知识暂作笔记而已,后面会修改完善。 使用之前必须导入:#include <shellapi.h>头文件 BOOL ShellExecuteEx( _Inout_ SHELLEXECUTEINFO *pExecInfo ); eg:: SHELLEXECUTEINFO sei;//定义一个 ShellExecuteEx 对象sei ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));//使用之前最好清零。 sei.cbSize=sizeof(SHELLEXECUTEINFO); sei.lpFile=_T("cmd.exe");//执行文件的路径 sei.lpVerb= _T("runas");//执行的动作。 sei.nShow=SW_SHOW; ShellExecuteEx(&sei);//执行 lpVerb 参数与 ShellExecute 的 lpOperation 参数一致: edit 用编辑器打开 lpFile

unity关于C#使用XMLDocument生成XML文档时,UTF-8编码的BOM问题

南笙酒味 提交于 2020-01-13 06:05:42
在程序中使用XMLDocument的方法生成XML文档时,当使用UTF-8的编码生成时,生成的文档会默认加上隐藏的字符,这些字符就是BOM,这样的文档在有些程序解析的时候会发生错误,所有我们要去除这些BOM要使用以下方法 public static void SaveXmlWithUTF8NotBOM(string savePath, XmlDocument xml) { StreamWriter sw = new StreamWriter(savePath, false, new UTF8Encoding(false)); xml.Save(sw); sw.WriteLine(); sw.Close(); } 使用这个方法就不会有BOM的问题了! 来源: CSDN 作者: Name-five 链接: https://blog.csdn.net/qq_30190489/article/details/103878443