LabVIEW在实时目标上使用文件路径

news2024/9/29 23:25:20

LabVIEW在实时目标上使用文件路径

文件路径和结构因目标操作系统而异。本文档讨论了推荐的LabVIEW编码实践,用于指定文件路径,以便应用程序可以无缝地从目标移动目标。

实时操作系统选项

所有NI实时控制器运行三种不同的操作系统之一,即PharLap、VxWorks或NI Linux Real-Time。在运行PharLap操作系统的目标上,文件路径的工作方式与根目录位于C:\的Windows文件路径非常相似。和反斜杠作为目录之间的分隔符。VxWorks目标具有Unix样式的文件结构,因此使用正斜杠作为以/c/作为根目录的目录之间的分隔符。然而,在LabVIEW中,用户会注意到使用PharLap文件路径和VxWorks文件路径之间差别很小。这是因为所有路径常量、控件和指示器都使用与LabVIEW中的Pharlap(或Windows)相同的格式显示VxWorks文件路径。因此,在按照本文档中的建议构建文件路径时,用户不应注意到使用PharLap和使用VxWorks之间的任何区别。

在NI Linux Real-Time目标上,根文件路径为/,正斜杠用作目录之间的分隔符。NI Linux实时目标没有C驱动器。但是,为了方便起见,存在目录/c和/c/ni-rt,并且/c/ni-rt/startup重定向到/home/lvuser/natinst/bin,这是NI Linux Real-Time目标上启动应用程序的推荐路径。

下图显示了在每个实时目标的目标根目录中创建名为test.txt的文本文件的简单代码:

动态构建的路径

在动态构建文件路径时,NI建议对根目录使用文件路径常量或控制,并使用带有各个路径元素(文件名称文件夹)的构建路径VI来构建完整路径,如下所示。这可确保使用正确的根目录和斜杠类型。下图显示了在不同操作系统上运行此代码时返回的路径。

或者,可以使用部署VI的位置作为参考来构建相对路径。下面的代码演示了如何使用当前VI的路径常量、条带路径和构建路径函数来执行此操作。与第一种技术一样,如果将VI移动到具有不同操作系统的控制器或具有不同文件结构的位置,这也避免了重新编写路径的需要。下图显示了在不同操作系统上运行此代码时返回的路径。

文件路径常量

文件路径常量和控件根据目标上下文动态更改路径。例如,包含C:\的文件路径常量当为Pharlap或VxWorks目标保存时,当移动到NI Linux RT目标时,将自动更新为/c/。文件路径常量和控件是在实时目标上指定静态路径的首选方法。

但是,文件路径常量通常无法更正无效的文件路径。如果在常量中键入无效路径,它可能会尝试更正当前操作系统的该路径,但可能会失败,从而产生不正确的结果。

下面是文件路径常量如何更正/尝试更正输入的几个示例。

1)用户在Windows机器上的路径常量中键入/c/Applicaton/SubVIs/Example.vi。路径常量将此识别为Linux实时操作系统的有效文件路径。它成功地将其更正为Windows样式路径:

2)用户在Windows上下文中的路径常量中键入\c\应用程序\子VIs\Example.vi。此路径与示例1中的路径相同,但带有反斜杠。这是一个无效的文件路径,因为它包含的斜杠是LinuxRT的错误方向,但不像Windows样式路径那样以驱动器号开头。路径常量尝试添加驱动器号,就好像它是Windows样式路径一样

3)用户在Windows上下文中的路径常量中键入C:/Application/SubVIs/Example.vi。这将是Windows样式路径,正斜杠除外。路径常量识别它以驱动器号开头并添加反斜杠:

用户必须负责识别输入无效路径并因此被错误更正的时间。

静态文件路径

可以在不使用文件路径常量的情况下构建文件路径。字符串到路径函数可用于指定实时系统上的静态文件路径,如下所示:

但是,NI不推荐使用此选项,因为字符串到路径功能在目标之间移动时不会动态更改根目录或斜杠方向。必须注意确保转换为文件路径的任何字符串仅包含目标操作系统的正确斜杠。例如,如果文件路径字符串包含反斜杠,并且您尝试在Linux实时目标上运行VI,则程序将无法在磁盘上找到正确的位置。这是因为Linux实时无法将反斜杠识别为分隔符;在NI Linux Real-Time上,文件名中可能包含反斜杠。

注意:大多数实时目标使用字母来指示不同的驱动器。以C开头的路径存储在实时目标的内部存储器中。外部紧凑型闪存驱动器从C之后的第一个可用驱动程序号开始映射,外部USB硬盘驱动器从U开始映射。

注意:在写入目标驱动器之前,您指定要写入的文件夹必须存在于目标驱动器上,否则VI将无法正常工作。

文件系统权限

文件和文件夹访问权限不会在运行VxWorks或PharLap操作系统的NI实时目标上强制执行。另一方面,NI Linux实时目标使用并强制执行标准Linux样式文件和文件夹访问权限。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Find My资讯|美国航班取消,出行者疯狂购买苹果AirTag追踪行李箱

美国西南航空(Southwest Airlines Co.)由于所使用的 SkySolver 系统在圣诞假期间崩溃,导致航班出现大面积延误或取消(大约 13000 个航班受到影响),让公司损失超过 8 亿美元(当前约 53.76 亿元人…

5.kafka--生产调优

文章目录Leader Partition负载均衡消费者初始化流程消费者再平衡生产者和消费者如何提高吞吐量如何发送大消息Leader Partition负载均衡 参数名称描述auto.leader.rebalance.enable默认是true。自动LeaderPartition平衡。生产环境中,leader重选举的代价比较大&…

ADB快速入门

ADB快速入门 一、 简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具用来连接电脑和Android设备(手机、电脑、电视、平板、…

LIO-SAM代码解析——imuPreintegration.cpp

目录imuPreintegration.cpp1. TransformFusion 类1.1. lidarOdometryHandler1.2. imuOdometryHandler2. IMUPreintegration 类2.1. imuHandler2.2. odometryHandler⭐2.2.1. 初始化系统, 把初始的lidar位姿,速度,零偏加入到因子图中2.2.2. 将两帧之间的i…

【深度学习】简述CNN分类网络的演变脉络及各自的贡献与特点

问题 简述CNN分类网络的演变脉络及各自的贡献与特点 综述 深度学习的浪潮就是从CNN开始的,它结构形态的变化也见证着这门技术的发展。现在涌进来学习深度学习的大部分人都是做计算机视觉的,因为这个门槛相对较低,业界数据集开源了很多,也比较直观,而且对硬件设备的要求…

2023年二月份图形化四级打卡试题

活动时间 从2023年 1月1日至1月21日,每天一道编程题。 本次打卡的规则如下: (1)小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 (2)小朋友做完题目后&…

Spring Boot 整合Redis分布式锁 Lua脚本

参考:微服务 Spring Boot 整合Redis分布式锁 Lua脚本 实现优惠卷秒杀 一人一单_Bug 终结者的博客-CSDN博客 一、什么是Lua? Lua 是一个小巧的脚本语言。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编…

MySQL事务学习笔记

事务就是保证一组数据库操作,要么全部成功,要么全部失败。事务的实现是在引擎层, 因此我们说的是InnoDB的事务。为何需要事务?比如有一个转钱的业务,A给B转100, 那么就是两条sql语句,一个是A的钱…

Spring Boot 热部署(热加载)

idea 热部署作用&#xff1a;自动帮开发者重启 spring boot 项目&#xff0c;从而达到修改代码之后能够“实时”的看到最新的效果1.添加热部署框架支持<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</…

Spring和Spring Boot的区别

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Spring和Spring Boot的区别 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: …

双目立体匹配(传统/深度)方法总结

双目立体匹配工作--2022年度总述投影几何标定单目标定双目标定校正立体匹配传统方法深度学习方法合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式总述 投影几何 标定 摄像机参数&#xff1a;一般一共15个相关参数&#xff1a; &#xff08;1&#xff09;外参数…

详解目前最火的自主泊车技术

/ 导读 /谈起目前的自动驾驶技术&#xff0c;民众们最为熟悉的一定是已经走入寻常百姓家的辅助驾驶功能。对比起L4甚至更高级别的自动驾驶&#xff0c;司机们更相信将方向盘能时刻掌握在自己手中&#xff0c;如果有突发情况可以及时地进行接管。而目前消费者已经能体验到的辅助…

prometheus安装及使用入门

文章目录前言一. prometheus介绍1.1 prometheus的起源2.1 prometheus的特点二. prometheus的安装2.1 实验环境2.2 安装前准备2.3 开始安装prometheus2.3.1 下载并解压prometheus server2.3.2 安装过程2.3.3 启动并查看端口2.3.4 打开浏览器查看图形界面总结前言 云原生四象限&…

【应用】SpringCloud -- Sentinel

SpringCloud -- SentinelSentinel 概述Sentinel 的安装与启动Sentinel 微服务创建Sentinel 规则流控规则热点规则熔断规则授权规则Sentinel 其他常用功能规则持久化自定义异常Sentinel 概述 sentinel 官方文档 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越…

三十五、Kubernetes1.25中Ingress使用

1、概述在上篇文章中我们详解销售了Ingress是什么、有什么用以及怎么安装&#xff0c;如果没有看的建议先看下&#xff0c;然后再来看这篇文章&#xff0c;上篇文章地址&#xff1a;https://blog.csdn.net/u011837804/article/details/128564606这篇文章我们用实际操作&#xf…

vs鼠标右键“管理NuGet程序包”无响应

其他C#开发问题参考我的&#xff1a;C#基础知识体系框架图&#xff0c;及起对应我发过的博客 问题&#xff1a;下载SharpDX的开源示例代码&#xff0c;鼠标右键无法正常打开NuGet下载依赖&#xff0c;而在本地自己创建的项目中可以正常下载 原因&#xff1a;缺少.sln文件 解决…

定时任务Demo总结(推荐最后一种)

方法一&#xff1a; 线程实现 Runnable 接口 Thread thread new Thread(new Runnable() {Overridepublic void run() {while (true) {SimpleDateFormat sdf new SimpleDateFormat("HH:mm:ss.SSS");String dateStr sdf.format(new Date());System.out.println(&quo…

1.【SpringBoot源码】如何搭建SpringBoot源码调试环境?

目录 一、环境安装要求 二、从github上将SpringBoot源码项目下载下来 三、将SpringBoot源码项目导入到IDEA中 四、编译构建SpringBoot源码项目 五、运行SpringBoot自带的sample 一、环境安装要求 IntelliJ IDEAJDK1.8Maven3.5以上 二、从github上将SpringBoot源码项目下载…

嵌入式开发者的选择——用RTOS,还是不用RTOS?

多年来&#xff0c;随着新技术的引入以及用户和应用程序的不同需求&#xff0c;嵌入式开发人员发生了变化。正如所有嵌入式东西一样&#xff0c;没有两次流程是相同的。然而&#xff0c;我们应对设计挑战的方式有一些共同之处。你总是从系统级别开始&#xff0c;需要从最终应用…

深入 ServiceWorker,消息推送,后台同步,一网打尽

上一章讲到了ServiceWorker的基础使用&#xff0c;但是它的功能不仅仅只有这些&#xff0c;还有很多很多&#xff0c;比如消息推送&#xff0c;后台同步&#xff0c;甚至还有WebRTC&#xff0c;这一章我们来进阶ServiceWorker。 前期准备 在开始之前&#xff0c;我们先做一下…