0.9.1 • Published 2 years ago

piwebapi-angular v0.9.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

PI Web API client for Angular 14+

Overview

This repository has the source code package of the PI Web API client for Angular, which compiles for .NET Standard 2.0 and .NET Framework 4.5.2. PI Web API 2018 swagger specification was used to create this package.

Requirements

  • PI Web API 2018+ instance available on your domain or a public network.

Compability

This library is compatible with:

  • Angular 14.0+

Installation

Install the package on your Angular app using npm:

$ npm install piwebapi-angular --save

Consuming your library

Add PIWebApi as a provider on your Angular AppModule:

import { PIWebAPIService } from 'angular-piwebapi';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    FormsModule
  ],
  providers: [PIWebApi],
  bootstrap: [AppComponent]
})
export class AppModule { }

Documentation

All PI Web API server methods are mapped on this client. Please refer to PI Web API help page.

CORS

  • Configure PI Web API CORS correctly to avoid being blocked by the browser.

Set up the instance of the PI Web API top level object.

If you want to use basic or kerberos authentication, use the correct method as shown below:

Basic authentication

    this.piwebapi.setBasicAuth("https://webserver/piwebapi/", "username", "password");

Kerberos authentication

    this.piwebapi.setKerberosAuth("https://webserver/piwebapi/");

If you want to test if it connects, just execute the code below:

    this.piwebapi.home.get().subscribe({
      next: (res) => { console.log(res) }, 
      error: (error) => { console.log(error.json()) }
    });

Get the PI Data Archive WebId

    this.piwebapi.dataServer.getByPath('\\\\SERVERNAME').subscribe({
      next: (res) => { console.log(res) }, 
      error: (error) => { console.log(error.json()) }
    });

Create a new PI Point

    var newPoint = new PWAPoint();
    newPoint.Name = "NEWPOINT";
    newPoint.Descriptor = "Test PI Point for Angular PI Web API Client";
    newPoint.PointClass = "classic";
    newPoint.PointType = "float32";
    newPoint.Future = false;
    this.piwebapi.dataServer.createPoint(piDataArchiveWebId, newPoint).subscribe({
      next: (res) => { console.log(res) }, 
      error: (error) => { console.log(error.json()) }
    });    

Get PI Point WebId

    this.piwebapi.point.getByPath("\\\\SERVERNAME\\sinusoid").subscribe({
      next: (res) => { console.log(res) }, 
      error: (error) => { console.log(error.json()) }
    }); 

Using bulk methods

    var webIds = []
    webIds.push(point1webId);
    webIds.push(point2webId);
    webIds.push(point3webId);

    this.piwebapi.streamSet.getRecordedAdHoc(webIds, undefined, "*", undefined, true, 1000, undefined, "*-3d", undefined).subscribe({
      next: (res) => { console.log(res) }, 
      error: (error) => { console.log(error.json()) }
    });           

Licensing

Copyright PIDevGuru

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Please see the file named LICENSE.md.

0.9.1

2 years ago

0.9.0

2 years ago