精华内容
下载资源
问答
  • iOS 一行代码集成微信浮窗功能

    千次阅读 2018-07-27 18:04:43
    一行代码集成微信浮窗功能 1. 效果 2. 使用 在需要浮窗展示的地方调用: // self 为需要浮窗展示的控制器 [XWFloatingWindowView showWithViewController:self]; 现在你的控制器就已经集成微信浮窗功能...

    XWFloatingWindow

    一行代码集成微信浮窗功能

    1. 效果

    演示Gif

    2. 使用

    在需要浮窗展示的地方调用:

    // self 为需要浮窗展示的控制器
    [XWFloatingWindowView showWithViewController:self];

    现在你的控制器就已经集成微信浮窗功能了��

    其他方法

    1. 当然你可能需要知道当前控制器是否在浮窗内展示,你可以 ��:

    // self 为当前控制器
    BOOL isShowing = [XWFloatingWindowView isShowingWithViewController:self]

    他会告诉你当前控制器是否已集成在浮窗内。

    2. 获取你希望移除这个浮窗,除了拖动到右下红色区域内自动移除以外,你也可以 ��:

    // 移除浮窗,释放控制器
    [XWFloatingWindowView remove];

    3.扩展

    1.界面跳转效果使用 UINavigationController 转场动画
    2.震动效果使用 UIImpactFeedbackGenerator 此类仅支持iOS10及以上机型,微信能震动多数情况下此库也会震
    3.一些界面绘制使用了 CALayer 和 相关子类.
    4.使用了简单的 CABasicAnimation 核心动画
    5.分享一个笔者创建单例对象的代码块,任何需要创建单例的类,引入此段代码,并将 XXClassManager 替换为你自定义的类就可以了。
    #pragma mark - 单例对象
    static XXClassManager *_defaultManager;
    + (instancetype)shareInstance {
        if (!_defaultManager) {
            _defaultManager = [[self alloc] init];
        }
        return _defaultManager;
    }
    + (instancetype)allocWithZone:(struct _NSZone *)zone {
        if (!_defaultManager) {
            static dispatch_once_t onceToken;
            dispatch_once(&onceToken, ^{
                _defaultManager = [super allocWithZone:zone];
            });
        }
        return _defaultManager;
    }
    - (id)copyWithZone:(NSZone *)zone{
        return _defaultManager;
    }
    - (id)mutableCopyWithZone:(NSZone *)zone{
        return _defaultManager;
    }

    ⚠️ 调用此库之前需要确定你的控制器为 NavigationController 所管理,否则将无法集成

    详情实现可下载源码查看: XWFloatingWindow

    展开全文
  • AutoSAR系列讲解 - 基于Tasking工程的代码集成

    千次阅读 多人点赞 2020-09-16 21:36:52
    如何使用Tasking工具集成和编译我们DaVinci生成的代码

    基于Tasking工程的代码集成

    本次对Tasking的讲解可以算是对综合实验承接,主要讲解何如新建Tasking工程并集成编译我们在DaVinci中生成的代码。大家也可以类比着集成自己的工程,由于配置和版本等各种问题,集成中可能会出现与博主不同的结果,大家只能针对自己的情况见招拆招了
    ->返回总目录<-

    一、新建工程

    首先打开Tadking的界面,选择新建TriCore工程
    在这里插入图片描述
    然后输入工程名和路径,然后我们新建一个空工程,点击下一步
    在这里插入图片描述
    然后选择我们对应的芯片类型,按需求勾选上一些必要文件(这里主要是一些启动代码和link文件等,Tasking会根据你选择的芯片类型添加对应的文件到工程中),然后点击下一步
    在这里插入图片描述
    点击完成
    在这里插入图片描述
    看到左边工程里打开后类似这样,就表示新建成功了
    在这里插入图片描述

    二、代码集成

    拷贝我们在综合实验中生成的代码文件夹AppL到我们的工程下面来(或者大家自己通过DaVinci生成的代码)
    在这里插入图片描述
    然后去DaVinci的软件包中去拷贝来静态代码到我们的工程中,就是购买DaVinci的时候带的CBD文件夹
    在这里插入图片描述
    这个文件夹里是这样的内容:里面都是所有模块的AutoSAR静态源码。大家按自己的需求拷贝,没用到的模块就不用拷贝了(对应DaVinci里面有的模块就行)
    在这里插入图片描述
    然后拷贝到Tasking工程下(注意这个BSW中只有用到的模块,不用将整个BSW都拷贝过来了)
    在这里插入图片描述
    然后大家注意到了这里有个Code文件夹,里面放置的是我们编译工程必要的一些代码,即我们的main函数文件。目前博主就放了一个文件在这里名叫Project_Demo.c,该文件中的代码如下。大家认真看注释,这里的代码比较重要,最好理解一下

    /* 这里是必要的头文件 */
    #include "Os.h"
    #include "EcuM.h"
    #include "Rte.h"
    #include "Rte_Main.h"
    #include "Mcal.h"
    
    /* main函数,每个core都会执行一次 */
    int main(void)
    {
    	Os_InitMemory();
    	Os_Init();
    	EcuM_Init(); 
    	return 0;
    }
    
    /* 初始化Task,由于在DaVinci中没有配置,也可以在这里手写调用(虽然不标准,但是较为灵活)
    *  初始化中要去调用EcuM进行StartupTwo,不然上电流程是走不完的 */
    TASK(InitTask_Core0)
    {
    	EcuM_StartupTwo();
    	(void)TerminateTask();
    }
    
    TASK(InitTask_Core1)
    {
    	EcuM_StartupTwo();
    	Rte_Start();
    	(void)TerminateTask();
    }
    
    /* 然后定义一个结构体,这是芯片的初始化结构体,指定了代码的引导地址,不然无法startup
    *  这里的定义和对其的赋值都需要大家有一定的芯片基础才行,需要看芯片手册,如果是和博主相同的
    *  环境也可以直接拷贝修改即可
    */
    typedef struct
    {
    	uint32 stadabm;       /*User Code Start Address                             */
    	uint16 bmi;           /*Boot Mode Index (BMI)                               */
    	uint16 bmhdid;        /*Boot Mode Header ID B359H                           */
    	uint32 chkstart;      /*Memory Range to be checked - Start Address          */
    	uint32 chkend;        /*Memory Range to be checked - End Address            */
    	uint32 crcrange;      /*Check Result for the Memory Range                   */
    	uint32 crcrangeinv;   /*Inverted Check Result for the Memory Range          */
    	uint32 crchead;       /*Check Result for the ABM Header (offset 00H..17H)   */
    	uint32 crcheadinv;    /*Inverted Check Result for the ABM Header            */
    }BMD_HDR;
    
    /* 强制地址为0x80000000,就是为了初始化的时候这里的配置被芯片识别到 */
    const BMD_HDR Bmiheader __at(0x80000000)=
    {
    	0x80000020,
    	0x0370,
    	0xB359,
    	0x00000000,
    	0x00000000,
    	0x00000000,
    	0x00000000,
    	0x49E9B5B4,
    	0xB6164A4B
    };
    
    /* 最后是一些必要的Mcal函数和回调函数等可以放在这里防止编译不过 */
    void Appl_UnlockEndinit(void)
    {
    	Mcal_ResetENDINIT();
    }
    
    void Appl_LockEndinit(void)
    {
    	Mcal_SetENDINIT();
    }
    
    static volatile uint32 mydummy;
    
    void ApplCanWaitSetMCR(void)
    {
      uint32 i;
      for (i=0; i<10000; i++)
      {
        mydummy++;
      }
    }
    
    void UserPreISRHook(ISRType CurrentISR)
    {
    #  if defined (V_ENABLE_USE_DUMMY_STATEMENT)
      CurrentISR = CurrentISR;
    #  endif
      /* nothing found yet, to be called here */
    }
    
    void UserPostISRHook(ISRType CurrentISR)
    {
    #  if defined (V_ENABLE_USE_DUMMY_STATEMENT)
      CurrentISR = CurrentISR;
    #  endif
      /* nothing found yet, to be called here */
    }
    

    然后在Appl/Source/MyApp_Core0.c(这个文件的名称是大家在DaVinci中配置的,可能不同)的MyRunnable_Core0函数中添加如下代码。注意这里的两个英文注释中的用户代码在每次用DaVinci重新生成的时候是可以保留的(即不会被新代码覆盖,防止用户的劳动成功付诸东流)

    FUNC(void, MyApp_Core0_CODE) MyRunnable_Core0(void) /* PRQA S 0850 */ /* MD_MSR_19.8 */
    {
    /**********************************************************************************************************************
     * DO NOT CHANGE THIS COMMENT!           << Start of runnable implementation >>             DO NOT CHANGE THIS COMMENT!
     * Symbol: MyRunnable_Core0
     *********************************************************************************************************************/
    	ComM_ModeType ComMode;
    
    	/* 这段代码是为了防止Ecu主动进入睡眠或者下电 */
    	Rte_Call_ComM_UserRequest_GetCurrentComMode(&ComMode);
    	if(ComMode != COMM_FULL_COMMUNICATION)
    	{
    		Rte_Call_ComM_UserRequest_RequestComMode(COMM_FULL_COMMUNICATION);
    	}
    
    	/* 这里的函数用来翻转LED的状态 */
    	Dio_FlipChannel(DIO_CHANNEL_33_8);
    }
    

    /**********************************************************************************************************************

    • DO NOT CHANGE THIS COMMENT! << End of runnable implementation >> DO NOT CHANGE THIS COMMENT!
      *********************************************************************************************************************/
      }

    三、配置工程

    打开工程配置
    在这里插入图片描述
    然后一次点开以下地方,开始添加包含的头文件路径
    在这里插入图片描述
    一般来说将工程下所有的文件夹都加进去就行了
    在这里插入图片描述
    然后如果链接缺少文件,还需要加上下面这个路径
    在这里插入图片描述
    然后去掉下图中的勾
    在这里插入图片描述

    四、编译与运行

    按下Ctrl+b的组合键就开始编译了
    在这里插入图片描述
    看到它就编译成功了
    在这里插入图片描述
    最后我们来看看LED的闪烁,真是不容易啊(这里是每500ms翻转一次,也就是1s闪烁一次)
    在这里插入图片描述
    在这里插入图片描述

    附:返回总目录的传送门如下
    ->返回总目录<-

    展开全文
  • 基于模型开发之代码集成(一)

    千次阅读 2017-04-29 17:11:58
    在进行基于模型开发的工作时,特别是嵌入式系统项目中,会遇到这样的情况:想把一些已有的C代码集成到模型中,或者直接通过模型调用,不但在模型仿真过程中这些C代码可以与模型同时被执行,而且在后续使用Simulink ...

    去年的事情太多,自己也有些懒,本来的写作和学习计划都没有坚持下来,今年一定要加油!

     

    在进行基于模型开发的工作时,特别是嵌入式系统项目中,会遇到这样的情况:想把一些已有的C代码集成到模型中,或者直接通过模型调用,不但在模型仿真过程中这些C代码可以与模型同时被执行,而且在后续使用Simulink Coder 或者 Embeded Coder 生成代码时,自动生成的代码能够和已有的C代码直接能够正确的相互调用或集成。

     

    这些C代码往往是比较成熟简洁的算法代码,或者底层驱动代码,亦或只是一些底层代码中用来和模型交换数据的变量,没有必要或者无法用Simulink建模的方式搭出。

     

    Simulink中有一些方法是可以实现这种代码集成的,甚至可以针对特定的硬件平台将所有的硬件驱动代码全部集成到模型中实现一键生成代码下载到目标板中,当然这种开发方法要用到S-fuction以及tlc等较复杂的脚本语言,开发的工作量也是不小的,往往让人望而却步,有没有比较简单的集成C代码到模型中的方法呢?

     

    答案当然是肯定的,不然我在这里码字算是干嘛呢(哈哈,比较冷的笑话)

     

    我也是现学现卖,介绍两种比较简单的方法可以将代码集成到模型中。

     

    1、使用Legacy Code Tool来集成C代码到Simulink模型

     

    2、在StateFlow建模过程中使用CustomCode 集成或调用已有C代码

     

    后续的两篇博文会详细介绍使用过程和注意事项。

    展开全文
  • 一行代码集成一款精致的第三方OC日历——WZYCalendar

           了解过身边很多朋友在开发中都遇到了这样一个需求,需要集成一个日历到项目中去,用来显示一些和项目中有关的需求。比如说提醒事项、签到、跳转到当天的周期信息等等。但是自定义一款日历非常的耗时,需要处理的数据逻辑繁多。一般在项目经理的催促下我们最好采用集成一款第三方,然后根据需求进行进一步的修改。最近在自己的项目中也遇到了这样的问题,在很多开源的平台下载了许许多多的第三方日历插件,但是觉得都不是太理想(以下比较过其他第三方日历插件后我做了一些优化调整)。所以说自己花时间自定义了一款易用的日历,测试过很多次,达到了一个比较满意的效果,在此推荐给大家。


    项目地址以及演示 Demohttps://github.com/CoderZYWang/WZYCalendar


    使用语言:Objective-C


    优化方向

    ① 解决数据加载过多内存消耗过大问题,一次只加载四个月份的数据。

    ② 解决控件循环引用问题,不会创建过多的控件,减轻界面显示时的压力。

    ③ 提供回调接口,点击日期可以方便拿到当前的时间。

    ④ 拒绝 xib、storyboard 搭建,纯代码编写。

    ⑤ 项目中采用了模块封装,代码清晰,添加了比较多的注释,方便开发者的二次修改以及增加新的功能。


    集成方式

    ① 打开终端,进入到自己的项目目录下

    $ cd WZYCalendarDemo/


    ② pod search(如果查询不到,可以 pod setup 更新一下最新的库文件,如果你曾经更新过,那么这一步骤不会花费太多时间)

    pod search WZYCalendar


    ③ 打开 Podfile 文件集成



    ④ 在自己的项目中集成

    //
    //  ViewController.m
    //  WZYCalendarDemo
    //
    //  Created by 王中尧 on 2016/12/25.
    //  Copyright © 2016年 wzy. All rights reserved.
    //
    
    #import "ViewController.h"
    
    #import <WZYCalendar/WZYCalendar.h>
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        // 设置尺寸
        CGFloat width = self.view.bounds.size.width - 20.0;
        CGPoint origin = CGPointMake(10.0, 64.0 + 80.0);
        
        // 传入Calendar的origin和width,自动计算控件高度
        WZYCalendarView *calendar = [[WZYCalendarView alloc] initWithFrameOrigin:origin width:width];
        
        // 点击某一天的回调
        calendar.didSelectDayHandler = ^(NSInteger year, NSInteger month, NSInteger day) {
            
            NSLog(@"%ld年%ld月%ld日", year, month, day);
            
        };
        
        // 添加到控制器的view中
        [self.view addSubview:calendar];
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    


    是不是特别的简单,如果大家对日期的功能不满足,那么可以进行自定义。在项目的源码中有非常清晰的注释供大家参考。

    如果大家觉得还不错,记得在 GitHub 给予您宝贵的一个 star。


    展开全文
  • Visual Studio Code,一款功能强大且轻巧的免费代码集成编辑器 软件下载地址: 链接: https://azure.microsoft.com/zh-cn/products/visual-studio-code/ 基本设置 安装中文包:在左栏的软件商店中搜索Chiese选择...
  • //Emoji表情:https://github.com/rockerhieu/emojicon compile 'io.github.rockerhieu:emojicon:+' //Emoji表情转换成各类可见字符串:https://github.com/vdurmont/emoji-java/ compile '...
  • Jenkins集成Maven代码测试覆盖率插件Cobertura可以很好的测试到没有做单元测试的代码代码测试覆盖率也是一个衡量代码质量的因素。Maven为我们提供了Cobertura插件,可以很好地配置到pom.xml文件中集成。除了...
  • 9 Flowable-Modeler集成以及集成代码下载背景代码修改效果验证Modeler集成源码下载集成设计打赏版权 背景 目前我们已经修改完成了modeler单独编译,现在我们需要去除modeler的相关认证,并且自动使用超级用户来完成...
  • 这是一个代码实现部分,此处作为实现示例。此文章为转载,作者 张峰  转载地址:https://blog.csdn.net/xiaomifengmaidi1/article/details/83990526 此博客为测试SharePoint与OAuth2.0服务的集成,背景为埃维诺为...
  • 静态代码扫描SonarQube与jenkins集成

    万次阅读 2018-07-31 22:51:59
    要完成与Jenkins集成请先完成1-2...在jenkins的插件管理中选择安装sonar jenkins plugin,该插件可以使项目每次构建都调用sonar进行代码度量。 进入【系统管理】-【系统设置】中,对sonar插件进行配置,如下图: ...
  • phpstorm集成svn代码管理

    千次阅读 2018-01-11 17:33:43
    phpstorm集成svn代码管理http://www.xiaoshu168.com/php/230.html
  • Jenkins集成Sonar进行代码审查

    千次阅读 2018-04-18 14:44:46
      由于最近客户要求在devops持续集成平台上增加代码审计功能,经过一番对比,决定选用sonar来实现,通过网上的文档艰难的完成了安装,写篇博客记录下。 SonarQube 简介   Sonar是一个用于代码质量管理的...
  • Android | 零代码快速集成AGC崩溃服务

    千次阅读 2020-10-27 17:23:56
    按照官方介绍: AGC崩溃服务提供了轻量级崩溃分析服务,依据Crash SDK,可以实现零代码快速集成,你的应用能够在崩溃时自动收集崩溃报告,帮助你了解应用版本质量、对崩溃性问题进行快速跟踪定位、评估崩溃问题的...
  • Sonar 集成Jenkins进行代码审查

    千次阅读 2016-06-03 17:21:30
    通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而...
  • 持续集成代码质量管理-Sonar [三]

    千次阅读 2016-12-23 15:26:15
    持续集成代码质量管理-Sonar [三]标签(空格分隔): JenkinsSonar介绍 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具...
  • 通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而...
  • 代码走查-VS集成Sonar

    千次阅读 2018-07-14 18:35:23
    两个插件搞定VS与sonar的集成使用:sonar scanner :用于静态代码扫描sonarlint for vs2015(2017):vs的sonar插件一、sonar scanner1、下载Sonar Scanerhttps://sonarsource.bintray....
  • 本文将讲解一下我最近写的一个快速集成二维码扫描库,这里需要说明的是其核心的实现扫描的功能,是通过调用ZXing库实现的。内部App中使用到了二维码扫描功能,但是网上找了一些关于二维码扫描的例子,只是我在集成的...
  • JetBrains系列集成软件多行代码缩进

    千次阅读 2018-11-02 14:17:06
    在使用JetBrains旗下的集成软件,如IDEA, Pycharm, PhpStorm,Clion等时,通常需要整体向前或者向后缩进代码,以更加美观地编写代码。此时,可通过以下两个快捷键实现该功能: 1.代码整体向后缩进:  选中多行代码...
  • IDEA集成git,上传代码到码云

    万次阅读 2018-09-12 16:19:18
    github作为全球最大的同性交友平台,当然是首选了,但是如果你英文不是特别好,可以使用码云作为自己的代码托管平台,我也尝试使用了,感觉挺不错的,下面把IDEA中集成git已经上传代码到码云的步骤做一个简单的演示...
  • Spring集成MyBatis和代码生成工具

    万次阅读 2020-01-28 16:45:10
    MyBatis是一个数据库持久层框架,采用ORM架构,映射实体和数据库,对JDBC进行封装,支持定制化SQL、存储过程以及高级映射,使得开发者只需关注SQL语句本身,而不需要处理驱动加载、创建和管理连接等复杂的过程。...
  • 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]标签(空格分隔): Jenkins一、代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目。如果使用jenkins构建完成后,开发...
  • Gerrit集成Gitweb查看代码

    千次阅读 2017-03-13 10:49:42
    这样可以方便在服务器网页端直接查看服务器代码。在这篇文章中介绍的是http正向代理,需要设置Apache的配置文件httpd.conf和gitweb配置文件gitweb.conf。而要在Gerrit中使用gitweb来浏览版本库,并不需要设置上面...
  • eclipse集成git关联到gitee同步代码

    千次阅读 2019-07-05 07:22:10
    eclipse集成git关联到gitee同步代码 1. 注册gitee 2. eclipse集成git 3. eclipse配置git 4. gitee配置用户ssh秘钥 5. 本地项目上传到gitee仓库 6. 本地修改代码提交到gitee仓库 ...
  • IDEA 集成代码统计插件

    千次阅读 2018-06-06 11:44:13
    安装流程如下1.点击file 选择Settings2.点击Browse 3. 输入Statistic 点击Install 完成后重启IDEA4. 重启后左下脚会出现Statistic 图标 点击出现如下图 点击Refresh刷新注:项目结束,闲的无聊才会弄这个...!!!!!......
  • Idea集成git提交代码

    万次阅读 2018-06-17 10:45:46
     在第一次提交到代码仓库的时候非常容易出现,因为初始化的仓库和本地仓库是没有什么关联的,因此,在进行第一次的新代码提交时,通常会出现这个错误。 【问题原因】  远程仓库和本地仓库的内容不一致 【解决方法...
  • IDEA 集成Alibaba 代码检测插件

    千次阅读 2018-11-16 17:29:16
    在进入正题介绍这款插件之前,首先来谈一下《阿里巴巴Java开发手册》,2017年年初,首次公开的阿里官方Java代码规范标准手册可以说是引起了全民(IT界)代码规范的热潮,相信这个手册很多行业内的朋友都比较熟悉,毕竟...
  • Gitlab CI集成sonarqube实现静态代码检查 配置说明 Gitlab 系统:Ubuntu 16.04 Server 内存:4G IP:192.168.23.100 Dokcer Version : 18.09.0 Gitlab Runner 系统:Ubuntu 16.04 Server 内存:4G IP:192.168.23...
  • sonar代码分析实践:IDEA集成sonarLint

    千次阅读 2017-11-30 09:34:19
    后来发现有个和IDEA集成的插件,可以在代码提交之前就发现问题,便试了一试。安装Settings->Plugins->Browse Repositories 搜索sonarLint点击安装。 打开一个文件,开始编码,就会看到SonarLint给我们的提示 ...
  • sonar 集成代码测试覆盖率插件jacoco

    千次阅读 2017-02-13 16:18:25
    sonar 集成代码测试覆盖率插件jacoco sonar安装与配置sonar的安装非常简单,你只要下载sonar的压缩包,解压之后,切换到bin目录下,然后根据你的机器系统类型切换到指定的目录下去运行sonar就可以了,比如我的是在64...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 871,749
精华内容 348,699
关键字:

代码集成