PI VC开发代码实例

#include <atlbase.h>
#import "pisdkcommon.dll" no_namespace
#import "piTimeServer.dll" no_namespace
#import "pisdk.dll" no_namespace


//获取点的描述
void GetTagDescriptor(_bstr_t bServer, _bstr_t bTagName, _variant_t &vDesc)

{

try

{

// navigate through the PISDK

IPISDKPtr pSDK(__uuidof(PISDK));

ServersPtr pServs = pSDK->GetServers();

ServerPtr pServ = pServs->GetItem(bServer);

PIPointsPtr pPts = pServ->GetPIPoints();

PIPointPtr pPt = pPts->GetItem(bTagName);

PointAttributesPtr pAtts = pPt->GetPointAttributes();

PointAttributePtr pDesc = pAtts->GetItem(_bstr_t("descriptor"));

vDesc = pDesc->GetValue();

}

// Check for errors thrown by smart pointers

catch(_com_error e)

{

_tprintf(_T("Error %x occurred. Message was %s\n"), e.Error(), (char *)e.Description());

}

// Check for non COM errors being thrown

catch(...)

{

_tprintf(_T("Non-COM error"));

}

}
//获取点的值
void GetTagValue(_bstr_t bServer, _bstr_t bTagName, _variant_t &vValue)

{

try

{

CTime dtStart,dtEnd;
//BoundaryTypeConstants btType;


// navigate through the PISDK

IPISDKPtr pSDK(__uuidof(PISDK));

ServersPtr pServs = pSDK->GetServers();

ServerPtr pServ = pServs->GetItem(bServer);

PIPointsPtr pPts = pServ->GetPIPoints();

PIPointPtr pPt = pPts->GetItem(bTagName);

_PIDataPtr pData = pPt->GetData();

_PIValuePtr pValue = pData->GetSnapshot();

vValue = pValue->GetValue();

}

// Check for errors thrown by smart pointers

catch(_com_error e)

{

_tprintf(_T("Error %x occurred. Message was %s\n"), e.Error(), (char *)e.Description());

}

// Check for non COM errors being thrown

catch(...)

{

_tprintf(_T("Non-COM error"));

}

}
VC维的几个习题 阅读详情

相关推荐

Visual C++开发者的终极辅助:VC助手

本文还有配套的精品资源,点击获取 简介:VC助手为Visual C++开发者提供一系列集成的实用工具以提高效率和优化体验。它包含代码自动完成、错误检测、代码格式化、项目管理等关键功能,能够显著提升开发流程的效率。此外,VC助手还支持自定义代码片段、代码统计、性能分析和版本控制集成,为开发者的全方位需求提供支持。 1. 代码自动完成与智能预测 在现代开发环境中...

weixin_36012152的博客 1557

基于C#的PISDK研究(理论)

基于C#的PISDK研究(理论) 本篇文章主要对PISDK体系结构以及重点类进行阐述。 当我们决定使用PISDK时,可能会使用到下面的类库: 在上表中,PISDK.dll为核心类,大部分主要功能都在该类中。PISDKCommon.dl和PITimeServer.dll为通用类和PI自定义的时间类。我们利用上述3个类库就可以完成访问PI服...

weixin_30628801的博客 329

PI获取实时数据历史数据及极值类库

一个Pi取数的类,可以获取实时数据、历史数据及极值等,其中包括有Interop.PISDK.dll等dll。

PI Square中文论坛: PI SDK 开发中级篇| PI Square

注: 为了更好的利用站内资源营造一个更好的中文开发资源空间,本文为转发修正帖,原作者为OSIsoft技术工程师王曦(Xi Wang),原帖地址:PI SDK 中级篇  来源:https://d.gg363.site/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=4&amp;ved=2ahUKEwjJ3-HLrP3eA...

weixin_33911824的博客 1825

PISDK_1_3_8_388

PISDK

告别夜间噪点!用瑞芯微RV1126B的AI-ISP,手把手教你打造0.01Lux超低光摄像头

本文详细介绍了如何利用瑞芯微RV1126B芯片的AI-ISP技术,打造0.01Lux超低光摄像头,解决夜间噪点问题。通过AI算法与图像信号处理的深度融合,RV1126B的3TOPS边缘算力实现了像素级AI降噪和语义感知增强,显著提升低光环境下的图像质量。文章包含硬件选型、软件配置和实战调优指南,助力开发者在AIoT领域实现高性能视觉应用。

weixin_33725722的博客 564

PI-SDK开发示例

下面的例子是采用.NET 的winform窗口编程,同样适用于web开发.例子功能是查找测点,并读取选中测点的当前值. 界面如下: 第一步 打开 VisualStudio.NET 选择新建winform 窗体. 第二步 创建以上的窗体界面. 选择4个 Label 显示文字分别是"Server:" "Tagname:" "Timestamp:" "value:"

nc_yongyou的专栏 4432

别再手动跑定时任务了!Spring Boot项目5分钟集成xxl-job保姆级教程(含Docker部署调度中心)

本文提供Spring Boot项目快速集成xxl-job的保姆级教程,包括Docker部署调度中心的详细步骤。通过实战案例展示如何构建企业级分布式任务调度系统,解决传统定时任务的资源竞争、单点故障等问题,提升开发效率与系统可靠性。

weixin_30315905的博客 291

树莓派Raspberry Pi 3B+安装OpenCL

介绍。 首先,不要将OpenCL(GPU库)与OpenCV(计算机视觉库)混淆。如果您计划安装OpenCV,请按照此页面上的说明进行操作。 Raspberry Pi没有官方的OpenCL版本。我们在这里使用的是Daniel Steadelmann(GitHub上的Doe300)的硕士论文的结果。此 OpenCL 版本仅为 Raspberry Pi编写,不支持完整的 OpenCL 命令集。 如果您的软件需要完整版本,例如GluonCV,则可以考虑安装PoCL。在Raspberry上,它不会使用GPU,但

xfxuezhang.cn 1万+

Cadence Sigrity

目录 一、PowerSI 1、PowerSI仿真前设置 2、PowerSI提取S参数 (1)检查叠层 (2)选择需要提取的走线和GND (3)设置端口 (4)设置提取频率和提取方式 (5)运行仿真 一、PowerSI PowerSI是一个交流分析工具,适用于频域仿真。 S参数提取 电源阻抗提取 全波参数提取 阻抗、耦合检查 谐振分析 1、PowerSI仿真前设置 打开PCB文件: 打开后如图: 设置为单色后: 仿真前的设置:

fang_yang_wa的博客 3万+

TC397 EB MCAL开发从0开始系列 之 [17.1] ETH配置实战 - ping/发送

TC397 MCAL 从0开始之 ETH ping测试

yy九歌的博客 1505

Vulkan Driver for VC4(Raspberry Pi 3b) base on mesa

这是一篇关于在raspberry Pi 3b上移植实现vulkan 驱动的文章。 经过一段时间的代码搬运,终于实现了零的突破,可以在树莓派3B上运行Vulkan triangle/texture。当然目前的情况是,仅仅能运行这两个demo,很多API都未实现,实现了的API也还有一大堆bug,总之这只是一个开始。 之所以会在选择raspberry pi 3b是移植vulkan driver,是因为近段时间在学习GPU drivers(Mesa + DRM/KMS ),加之树莓派的GPU驱动是开源的.

eydwyz的专栏 1278

红火蚁巢穴AI智能识别,提供方案与思路!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1042

PHP 安装包 VC9 VC6 区别及Thread Safe和Non Thread Safe版本---PHP性能调试工具xdebug的简单使用

经常在网上看到有初学编程的慨叹搭建 APACHE+MYSQL+ PHP 非常麻烦,如果你也有这样的烦恼,可以尝试使用WampServer,由德国人开发,在Windows平台下集成的Apache、MySQL、PHP服务,其中还自带SQLitemanager和Phpmyadmin软件,极大方便大家的安装和使用。 2.0 组件: Les versions disponibles sont :

单向街的夏天 5349

【keil5和STC-ISP】保姆级下载安装教程

点击下载中的产品下载。然后就会看到如下界面:可以看到,提供了针对不同芯片架构的四套独立开发工具。:你使用的51单片机,其核心就是。C51套件里的编译器是专门为这个架构优化的。:如果安装了MDK-Arm,你在创建新项目时将像“AT89C51”这样的51系列芯片型号,无法进行开发。进入如下界面:双击下载 → 双击运行安装 → 同意协议并下一步 → 使用默认安装路径 → 完成安装。

深耕CV 1645

ABAP CDS 和 HANA SQL 的关系

摘要: ABAP CDS与HANA SQL既有紧密联系又有本质区别。ABAP CDS作为语义数据建模框架,在SQL基础上扩展了业务语义层,通过注解(annotations)、关联关系(associations)等机制为数据附加业务含义,并支持权限控制、客户端处理等ABAP平台特性。虽然CDS实体最终会转换为HANA数据库对象执行,但它并非简单的SQL封装,而是构建了独立于数据库的语义模型。二者在数据库执行层深度融合,ABAP CDS通过代码下推技术将计算任务优化到HANA层完成。实际开发中应优先使用ABAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 858

用VC + Eclipse调试jni的native代码

      最近,有用到Jni,于是要写一些测试代码,查了Jni文档后,还是觉得,调试很麻烦,于是就想能否用VC来调试。答案是可以的,大致过程如下:       1.在Eclipse中创建Java工程,编写好调用Jni的java代码,比如如下的JniBridge类: 1: package com.jni.jnibridge; 2:  3: public class JniBridge { 4: pub

陈俞飞的专栏 3379

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用 ,人工智能,计算机视觉,大模型,AI,本文解读了最新相关论文,包括基于图神经网络(GCN)的ML-GCN方法,通过构建标签相关矩阵建模依赖关系;区域潜在语义依赖的RLSD模型,定位关键区域并利用RNN建模语义依赖;以及语义图表示学习的SSGRL框架,结合语义解耦与交互模块。通过实战应用,展示了基于PyTorch的ML-GCN模型实现,包括图像特征提取、标签依赖建模及训练评估流程,为多标签图像分类提供了有效解决方案。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

VC6 快捷键大全

VC6编程常用的快捷键,希望对大家编程有帮助。

linux5Blue19的专栏 1796

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

const int *pi与int *const pi的区别

<br />/* const int *pi */ #include <stdio.h> int main(void) { int i1 = 30; int i2 = 40; const int *pi = &i1;/*如果const 修饰在*pi前,则不能改的是*pi(即不能类似这样:*pi=50;赋值)而不是指pi*/ pi = &i2;/* 注意这里,pi可以在任意时候重新赋值一个新内存地址*/ i2 = 80;/* 注意这里,pi可以在任意时候重新赋值一个新内存地址*/

GhostTigerMan 759

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC4CL与VC4C编译器集成:完整构建和部署流程详解

VC4CL是一款针对树莓派VideoCore IV GPU的OpenCL实现,它能让开发者充分利用树莓派的图形处理能力进行并行计算。本文将详细介绍如何将VC4CL与VC4C编译器集成,完成从源码获取到最终部署的全过程,帮助新手快速掌握这一强大工具的使用方法。 ## 一、准备工作:环境与依赖检查 在开始集成VC4CL和VC4C编译器之前,需要确保你的系统满足以下要求: - 树莓派设备(推荐Ra

gitblog_00120的博客 1120

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

利用VC和gSOAP工具开发WebServer

vc gsoap

cwisdomroof的专栏 1442

树莓派3下有VC程序设计的例子

在RaspberryPi3上面有一些关于VC程序设计的例子,原文件在/opt/vc/src/hello_pi目录。 在命令行下运行 ./rebuild.sh 可以编译原程序,进入对应目录可以运行它们!!!

huayucong的博客 1500

学习笔记:const int *pi 与 int *const pi 区别

const int *pi的语义 我先来说说const int *pi是什么作用 (当然int const *pi也是一样的,前面我们说过,它们实际是一样的)。看下面的例子: /* 代码开始 */ int i1 = 30; int i2 = 40; const int *pi = &i1; pi = &i2; /* 注意这里,pi可以在任意时候重新赋值一个新内存地址*/ i2 = 80; /*

589
上一篇: CString ,BSTR ,LPCTSTR之间关系和区别
下一篇: IT项目监理
dot_dot
博客等级 码龄21年 3粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值