Skip to content

SIOS-Technology-Inc/go-fiap-client

Repository files navigation

go-fiap-client

go-fiap-clientとは

go-fiap-clientは、IEEE1888プロトコルをGo言語で扱うためのクライアント実装です。現在はFETCHのみサポートしており、その他のクライアント メソッドは非対応です。サーバ実装はサポートされません。

IEEE1888 (UGCCNet, FIAPとも) は大量の時系列データをやりとりするための規格であり、BEMSやスマートグリッドでの利用を期待して開発されています。

pkg

ライブラリとしてのFIAPクライアント実装です。

package main

import (
	"fmt"
	"github.com/SIOS-Technology-Inc/go-fiap-client/pkg/fiap"
)

func main() {
	var (
		cli fiap.Fetcher = &fiap.FetchClient{ConnectionURL: "http://example.jp/FIAPEndpoint"}
		id  string       = "sios/example/Temperature"
	)
	_, points, _, _ := cli.FetchLatest(nil, nil, id)
	fmt.Print(id + ":[")
	for i, value := range points[id] {
		if i > 0 {
			fmt.Print(", ")
		}
		fmt.Printf(`time:%d,value:"%s" `, value.Time.Unix(), value.Value)
	}
	fmt.Println("]")
}
go run main.go
# sios/example/Temperature:[{time:1722438000,value:"29.01"}]

cmd

コマンドラインとしてのFIAPクライアント実装です。

go run main.go fetch --select max "http://example.jp/FIAPEndpoint" "sios/example/Temperature"
# {"points":{"sios/example/Temperature":[{"time":"2024-08-01T00:00:00+09:00","value":"29.01"}]}}

how to use library

go.modが存在するディレクトリで次のコマンドを実行します。

go get github.com/SIOS-Technology-Inc/go-fiap-client@latest

パッケージや関数の詳細はドキュメントを参照してください。

how to use command line

次のコマンドでローカルにコマンドをインストールします。

go install github.com/SIOS-Technology-Inc/go-fiap-client@latest

コマンドラインの記法

Fetch

go-fiap-client fetch [flags] URL (POINT_ID | POINTSET_ID)

このコマンドは、指定したURLPOINT_IDまたはPOINTSET_IDを用いて、FIAPサーバからデータをFetchし、JSON形式で出力します。

  • -h, --help
    オプション情報を含むコマンドのヘルプを表示します。
  • -d, --debug
    デバッグ用出力が表示されるようにします。
  • -o FILEPATH, --output FILEPATH
    Fetchの結果を指定したファイルに出力します。
  • -s TYPE, --select TYPE
    Fetchされるデータを変更するオプションです。TYPEmax, min, noneを記述します。指定しない場合のデフォルトはmaxです。
    FIAPのkeyクラスのselectの、それぞれmaximumminimun、指定なしに対応します。
  • --from DATETIME
  • --until DATETIME
    指定した日付期間で取得するデータを絞り込みます。DATETIMEには指定する日付日時をRFC3339形式の文字列で指定します。
    FIAPのkeyクラスのgteqlteqにそれぞれ対応します。

その他

go-fiap-client [flags]
  • -h, --help
    サブコマンドやオプションの情報を含むヘルプを表示します。
  • -v, --version
    go-fiap-clientのライブラリバージョンを表示します。

how to develop

開発環境はVisual Studio Code Dev Containersで構築されています。 Docker環境も前提となります。

詳細な利用方法はDev Containers 公式ドキュメントを確認してください。

About

通信規格のIEEE1888(a.k.a FIAP)に対応したGO版クライアントライブラリ

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors