L002-视图与视图控制器

瑞萨RA MCU多通道ADC高效采集:DTC自动搬运数据实战指南 在嵌入式系统开发中,多通道模拟信号采集是常见需求,传统轮询方式会占用大量CPU资源,影响系统实时性。其核心原理是利用MCU内置的专用DMA控制器(如瑞萨的DTC模块)实现数据自动搬运,从而解放CPU。这项技术的核心价值在于显著降低系统负载,提升整体效率,尤其适用于需要周期性采集多路传感器数据(如温度、压力、电压)的物联网终端工业控制器等场景。本文以瑞萨RA2L1 MCU为例,深入解析如何配置ADC扫描模式DTC模块协同工作,实现多通道转换结果的自动、准确搬运,并分享从实际调试中总结的配置技巧避坑点,为 阅读详情

MVC设计模式

MVC介绍:MVC是一种满足面向对象思想的设计模式
MVC特点:低耦合、高重用、维护及拓展性强; 对修改关闭,对扩展开放。

  • MVC设计模式是一种面向对象思想的设计模式

  • M(Model):模型,用于提供和存储程序执行过程中所需要的数据。

  • V(View):视图,用户可见或可交互的界面元素。

  • C(Controller):控制器,作为Model和View之间交互的媒介,实现大量的鞋无逻辑。

MVC设计模式结构:

这里写图片描述

注意:View及Model永远不会直接交互,通过Controller实现View和Model间的间接交互,Controller处理View接收的用户事件更新Model,Model更新完成通知Controller及时刷新View用户界面。
MVC中常用到委托delegate及通知NOtification设计模式。

UIWindow(窗口)

  • UIWindow作为程序的窗口,容纳并展示所有界面元素

  • AppDelegate中默认初始化了一个UIWindow,一般情况下不用手动新建;

  • 在iOS里UIWindow是UIView的子类

  • UIWindow初始化方法:

[UIWindow alloc] initWithFrame:[[UIScreen mainScreen].bounds]

UIView(视图)

  • UIView是基本的视图类,表示屏幕上的一块矩形区域。

  • UIView用于展示内容以及接收用户交互事件。

  • UIView可以管理其下显示的所有子视图。

  • 屏幕坐标系:

这里写图片描述

视图(层次、大小、位置)
  • subview在显示到屏幕上时,是位于superview 上面的,同一个view中的subview是按照嵌入顺序显示的,越晚加入的subview显示在越上层 ,可以通过tag值从父视图中找到对应的视图。 -(UIView *)viewWithTag:(NSInteger) aTag;

  • frame属性是边框矩形,用于指定视图相对于其父视图坐标系统的位置 和大小(相对于父视图),bounds属性是边界矩形,负责定义视图相对于本地坐标系统的位置和 大小(相对于本身),center属性是边框矩形的中心点。

  • 一些有用的Core Graphic数据结构 CGPoint、CGSize、CGRect以及对应的创建方法:CGPointMake(x, y) CGSizeMake(width, height) CGRectMake(x,y,width,height) CGRectZero

视图(属性)
  • autoresizeSubviews 默认是YES,自动调整子视图大小
  • autoresizingMask 父视图改变的时候自己如何跟着变化
  • hidden 是否隐藏
  • multipleTouchEnabled 是否支持多点触摸
  • subviews 所有子视图(NSArray类型)
  • superview 父视图
  • userInteractionEnabled是否接收交互
  • frame 相对父视图的位置和大小(CGRect)
  • bounds 相对自己的位置和大小(CGRect)
  • center 相对父视图的中心点(CGPoint)
  • transform 变换属性(CGAffineTransform)
  • window 当前view所在的window
  • backgroundColor 背景色(UIColor)
  • alpha 透明度(CGFloat)
  • tag 区分标识(NSInteger)
  • layer 视图层(动画部分重点讲解)(CALayer)
视图(操作)
  • 初始化一个视图-(id) initWithFrame:(CGRect)frame
  • 添加视图:addSubview:
  • 插入视图:
    insertSubview:atIndex:
    insertSubview:aboveSubview:
    insertSubview:belowSubview:
  • 整理视图:
    bringSubviewToFront: sendSubviewToBack:
    exchangeSubviewAtIndex:withSubviewAtIndex:
  • 移除视图:removeFromSuperview

UIViewController(视图控制器)

  • 视图控制器即MVC中的Controller,视图控制器中封装中欧诺个封装了一个UIView,并且管理某个页面区域的所有视图;视图控制器是模型和视图之间的媒介,模型和视图通过视图控制器来交互
  • 多种类的控制器:UIViewController、UINavigationController、 UITabBarController
  • 视图控制器提供了多种的界面响应方法,及界面生命周期方法,如监控界面旋转、界面加载等
  • UIViewController不能直接被使用,创建一个自定义控制器需要子泪花UIViewController。
  • UIWindow默认需要一个控制器作为整个窗口的根控制器,使用rootViewController来添加。
  • 控制器的- (void)viewDidLoad;方法会在控制器自身视图(self.view)及其它配置初始化完成后调用,作为控制器的入口方法,可以在其中添加自定义视图控件的初始化方法或初始化数据;
UIViewController(方法)
  • view 视图控制器的根视图
  • title 视图控制器的标题
  • interfaceOrientation 朝向(只读属性)
  • initWithNibName:bundle: 指定初始化方法
  • loadView 加载视图的方法,只调用一次
  • viewDidLoad 视图加载之后被调用,只调用一次
  • viewWillAppear: 视图将要出现的时候调用
  • viewDidAppear: 视图出现的时候调用
  • viewWillDisappear: 视图将要消失的时候调用
  • viewDidDisappear: 视图消失的时候调用
  • didReceiveMemoryWarning 接受到内存警告的时候调用
  • 视图控制器间基本的页面切换方法:
    模态控制器切换:
-   (void)presentViewController:(UIViewController *)
           viewControllerToPresent animated:(BOOL)flag 
       completion:(void (^)(void))completion;
-   (void)dismissViewControllerAnimated:(BOOL)flag 
       completion:(void (^)(void))completion;
udp搜索不同网段设备_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集... 通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤。PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库 网关模块安装在设备侧,不用电脑软件,随设备上电启动自动运行,保证设备数据采集设备运行同步,简单高效的完成了数据采集; 网关支持西门子、三菱、欧姆龙、施耐德等几乎所有... 阅读详情

相关推荐

ROS实机部署四步法:URDF建模、ros_control接口、Gazebo对齐MoveIt落地

ROS机器人不是桌面仿真,而是运行在Jetson、树莓派等真实主控上的实时协作系统。其核心在于硬件抽象物理模型的深度耦合:URDF作为机器人的结构化解剖说明书,定义质量、惯量关节拓扑;ros_control构建标准化硬件接口层,实现控制器电机驱动(如USB串口、CAN)的安全解耦;Gazebo仿真需严格镜像实机参数(轮距、编码器分辨率、传感器噪声),形成可信赖的数字孪生;最终通过MoveIt!将运动规划转化为真实空间中的避障抓取。这一闭环直接决定ROS能否从‘能跑’升级为‘可靠动’——尤其在差速底盘控

weixin_30487201的博客 395

STM32CubeIDE迁移STEVAL-ESC002V1无刷电机固件实战

嵌入式电机控制是机器人、无人机等领域的核心环节,无刷直流电机(BLDC)因高效、低噪、长寿命被广泛采用。理解BLDC的六步换相反电动势过零检测原理,是固件调优的基础;而一套高效的工具链则能显著加快开发节奏。STM32CubeIDE作为ST官方免费集成环境,内置CubeMX引脚配置、GCC编译器SVD寄存器观测,特别适合无刷电机固件的迁移调试。本文基于STEVAL-ESC002V1评估板,详细记录将官方无刷电机固件迁入STM32CubeIDE的全过程,覆盖环境搭建、调试器选择、编译报错排查、启动参数调整

weixin_34252090的博客 349

虚拟化进阶:PCIe直通、USB透传LXC容器配置实战解析

虚拟化技术通过将物理硬件资源抽象、隔离池化,实现了服务器资源的高效利用灵活分配。其核心原理在于利用CPU硬件辅助虚拟化(如Intel VT-x/AMD-V)内存管理单元(IOMMU),在保证安全隔离的前提下,允许虚拟机直接访问物理硬件,从而大幅降低性能损耗。这项技术的核心价值在于能够为高性能计算、网络功能虚拟化(NFV)AI推理等场景提供接近原生的I/O性能。具体到工程实践,PCIe设备直通借助VFIO驱动栈IOMMU实现DMA重映射访问保护,是获得极致网络存储性能的关键;而USB设备透传则为

chiyingliao3565的博客 744

Thinkphp5.1学习笔记

5.0版本采用模块化的设计架构,默认的应用目录下面只有一个index模块目录,如果我要添加新的模块可以使用控制台命令来生成。切换到命令行模式下,进入到应用根目录并执行如下指令:php think build --module demo 就会生成一个默认的demo模块,包括如下目录结构:├─demo │ ├─controller 控制器目录 │ ├─model ...

qq_33962835的博客 706

罗克韦尔(AB)PLCMySQL/SQLServer/PostgreSQL数据库对接

通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤。PLC数据MQTT多主题发布/订阅 首先用Navicat连接服务器数据库,建立一个数据表,名称为'abplcdata',数据表设计视图如下: 然后在PC上运行网关的参数设置软件,网线连接IGT-DSER网关的网口1,先配置网络参数(默认IP:192.168.1.244,确认PC的网口网关默认IP同网段),通过‘工具’->‘...

PLC通讯智能网关 6109

力士乐13v16伺服调试软件核心原理实操指南

伺服驱动调试是运动控制系统稳定运行的基础技术,涉及参数整定、实时波形分析、惯量辨识环路带宽匹配等关键环节。其底层依赖EtherCAT实时通信、自适应PID算法及开环频率响应(Bode图)分析等工业控制核心原理,技术价值在于将复杂控制理论转化为可交互的工程规则,显著缩短多轴系统调试周期并提升定位精度抗扰性。典型应用场景包括汽车焊装线压紧单元、激光切割Z轴高动态响应调试、注塑机精密定位优化等。本文聚焦力士乐IndraDrive专用调试平台13v16,深入解析设备视图、项目视图调试视图三层架构,并结合Osc

weixin_29159441的博客 297

sql实现a-b_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集

通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤。PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库 网关模块安装在设备侧,不用电脑软件,随设备上电启动自动运行,保证设备数据采集设备运行同步,简单高效的完成了数据采集; 网关支持西门子、三菱、欧姆龙、施耐德等几乎所有...

weixin_33148993的博客 1190

navicat运行sql文件慢_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集...

通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤。PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库 网关模块安装在设备侧,不用电脑软件,随设备上电启动自动运行,保证设备数据采集设备运行同步,简单高效的完成了数据采集; 网关支持西门子、三菱、欧姆龙、施耐德等几乎所有...

weixin_39639600的博客 220

RM46 Hercules开发套件硬件解析功能安全MCU开发实践

功能安全微控制器是汽车电子工业控制领域实现高可靠性的核心硬件基础,其设计遵循ISO 26262等严格标准,通过内置的锁步CPU、ECC内存保护等机制确保系统在故障下的安全运行。这类MCU的技术价值在于为车身控制、电池管理等关键应用提供了ASIL-D等级的安全保障。在工程实践中,开发者需要深入理解其硬件架构,特别是电源设计、通信接口(如CAN总线、以太网)的配置引脚复用逻辑,并熟练运用HALCoGen等工具进行外设驱动开发安全机制配置。本文以德州仪器RM46 Hercules开发套件为例,详细解析其硬件

aibi9196的博客 356

AB的Plc读写mysql数据库_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集...

通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤。PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库网关模块安装在设备侧,不用电脑软件,随设备上电启动自动运行,保证设备数据采集设备运行同步,简单高效的完成了数据采集;已批量用于多种行业的智能工厂,大大提高MES等工业互联网项目的实施效率。IGT-DSER带有两种...

weixin_42302872的博客 2063

罗克韦尔(AB)的PLC数据采集至SQL数据库,对接MES系统

通过数据库网关IGT-DSER连接罗克韦尔的PLC,实现PLC数据库双向通讯,支持标签变量名数据地址方式。 网关安装在设备侧,设备同时起停,不担心数据丢失;在断网、服务器维护上报数据有异常时,网关主动将数据缓存,待故障解除后自动重新上报到数据库;网关也支持多服务器冗余、异常未提交数据本地保存等功能,确保数据安全;已批量用于多种行业的智能工厂,大大提高MES等工业互联网项目的实施效率。 相关手册软件下载 以下案例PLC的型号是1756-L72...

m0_58077808的博客 1648

遗传算法实操指南:破解早熟、多样性丧失参数失效

遗传算法(GA)作为经典进化计算方法,其核心价值在于模拟自然选择实现全局优化,但理论原理工程落地之间存在巨大鸿沟。种群多样性衰减、适应度函数设计失当、交叉变异策略僵化等,常导致早熟收敛或无效探索。本文聚焦GA在真实场景中的可调试性,系统阐释如何通过基因型熵值、表型距离矩阵归一化适应度方差三维度量化种群健康状态,并构建基于证据的自适应响应机制——如早熟时注入随机个体+提升变异率、停滞时启动大步长扰动。内容覆盖实数编码精度控制、SBX/多项式变异实现、锦标赛选择精调及多维收敛可视化,直击风电优化、推荐系统超

weixin_30800807的博客 403

AM64x/AM243x R5FSS_RAT模块详解:地址重映射异常处理实战

在嵌入式系统实时控制领域,内存管理单元(MMU)地址转换机制是确保软件可移植性、安全性确定性的核心硬件基础。其基本原理是通过硬件辅助,将处理器发出的逻辑地址转换为实际的物理地址,从而实现内存保护、地址空间隔离以及灵活的内存映射。这一技术对于多核处理器、复杂外设访问以及功能安全(FuSa)应用至关重要,它能有效防止非法访问,提升系统可靠性。AM64x/AM243x等SoC中的R5FSS_RAT模块,便是一种针对Cortex-R5F子系统的精简版、区域化地址转换单元。它采用基于区域的地址重映射机制,延迟极

weixin_34082695的博客 408

MC9S12KG128引脚复用内存映射实战指南

在嵌入式系统开发中,微控制器(MCU)的引脚复用内存映射是连接硬件软件的核心基础。引脚复用机制通过端口集成模块(PIM)实现,允许单个物理引脚在不同场景下承载GPIO、SPI、PWM或CAN等多种功能,极大地提升了I/O资源的灵活性芯片集成度。内存映射则将所有寄存器、RAMFlash统一编址,为软件提供了直接访问控制硬件的“地图”。理解这两项技术对于开发高效、可靠的底层驱动至关重要,尤其是在汽车电子工业控制等对实时性可靠性要求极高的领域。本文以MC9S12KG128为例,深入解析其引脚复用配置

weixin_33712987的博客 598

PNX2015定时器PCA模块深度解析:从寄存器配置到实战应用

在嵌入式系统开发中,定时器是核心外设之一,用于精准计时、事件调度波形生成。其工作原理基于计数器在时钟驱动下递增,达到设定值后触发中断或硬件动作,从而实现周期性操作。这项技术的核心价值在于为系统提供时间基准,并解放CPU,提高效率。在串口通信、电机控制、数据采集等场景中,定时器都发挥着关键作用。本文以飞利浦PNX2015微控制器为例,深入剖析其Timer 2PCA(可编程计数器阵列)模块。通过详解T2CON、T2MOD等关键寄存器的每一位设计逻辑,穿透**自动重载**、**捕获模式**等冰冷配置的表象,揭

weixin_34138056的博客 479

CAN总线从入门到精通:硬件、协议、DBC解析实战工具指南

控制器局域网(CAN)是一种广泛应用于汽车电子工业控制领域的现场总线技术,其核心设计基于多主通信优先级仲裁机制,旨在解决复杂分布式系统中的可靠数据交换问题。该技术通过差分信号传输强大的错误检测机制,确保了在恶劣电气环境下的高可靠性通信。在工程实践中,CAN总线不仅涉及物理层的电平标准终端电阻配置,还包括数据链路层的协议帧结构,其中报文ID、数据场CRC校验等关键字段共同保障了通信的完整性实时性。对于嵌入式开发者汽车电子工程师而言,掌握CAN总线的原理后,进一步学习DBC文件解析常用工具(如P

weixin_33871366的博客 430

53、STM32 闪存内存管理启动流程详解

本文深入解析了STM32的闪存内存管理启动流程,涵盖通过TCM接口高效访问闪存、使用CubeMX配置内存接口、Cortex-M统一内存布局、软件物理重映射、向量表重定位等核心技术。同时介绍了从SRAM运行固件集成ST引导加载程序实现IAP升级的实用方法,并结合实际应用场景提供配置建议流程图示,帮助开发者优化系统性能、提升开发效率并实现安全可靠的固件更新。

nept的博客 85

CPU核心、线程多路系统详解:从硬件原理到性能调优实践

在计算机体系结构中,中央处理器(CPU)是执行指令处理数据的核心组件。其性能主要由物理核心数量、逻辑线程数以及多路系统架构共同决定。物理核心是独立的计算单元,每个核心拥有完整的执行资源,多核设计通过并行处理提升整体吞吐量,尤其适用于视频渲染、科学计算等并行负载。超线程(HT/SMT)技术则通过虚拟化逻辑处理器,让单个物理核心能近乎同时处理两个线程,提升执行单元利用率,通常带来15-30%的性能增益。从技术价值看,理解这些概念有助于进行系统性能调优、资源规划及并发编程。在实际应用场景中,无论是配置服务器、诊

weixin_33806914的博客 457
上一篇: L001-程序基本结构
下一篇: L003-基础控件
李鸿耀
博客等级 码龄11年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值