カラムタイプ(Middle)のカラム作成
このチュートリアルでは、Middleタイプのカラム作成方法について紹介します。
カラム作成のサンプルコード
このチュートリアルで紹介するサンプルコードです。
サンプルコードのファイルは、こちらにあります。
Middleタイプのカラム作成の部分だけを抜粋しています。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "speedbee.h"
/*
* sample 2 カラム作成 HI, MI, LO FIX, LO VAR
*/
// [カラム定義2]
// カラムタイプ Mi
// 初期サンプリングレート 1kHz
// メモリ保存 1000 件
// データサイズ 4バイト
#define COL2_PAR "COL_TYPE=M;DATA_SIZE=4;SMPL_RATE=1000;SAVE_COUNT=1000"
#define COL2_NAME "ch2" // カラム名称
int main(int ac, char *av[]) {
sdtsdb_t db;
sdtscid_t cids[4];
if (sd_init(NULL) < 0) {
printf("error sd_init [%d]\n", sd_get_err());
return 1;
}
printf("-- success sd_init --\n");
if ((db = sdts_open_db(NULL)) == NULL) {
printf("error sdts_open_db [%d]\n", sd_get_err());
sd_end();
return 1;
}
printf("-- success sdts_open_db --\n");
// カラム2 作成
if ((cids[1] = sdts_create_col(db, (sdid_t)COL2_NAME,
(char *)COL2_PAR)) < 0) {
printf("error sdts_create_col [%d]\n", sd_get_err());
(void)sdts_close_db(db);
sd_end();
return 1;
}
printf("-- success sdts_create_col [%d] --\n", cids[1]);
if (sdts_close_db(db) < 0) {
printf("error sdts_close_db [%d]\n", sd_get_err());
sd_end();
return 1;
}
printf("-- success sdts_close_db --\n");
if (sd_end() < 0) {
printf("error sd_end [%d]\n", sd_get_err());
return 1;
}
printf("-- success sd_end --\n");
return 0;
}
カラム作成のAPI(sdts_create_col)
sdts_create_colでカラムを作成します。
引数に作成するDB、カラム名、カラム作成のパラメータを渡しています。
パラメータは、カラムのタイプや、データサイズ、サンプリングレート等を指定します。
パラメータの詳しい内容は、APIドキュメントのsdts_create_col
を参照してください。
// [カラム定義2]
// カラムタイプ Mi
// 初期サンプリングレート 1kHz
// メモリ保存 1000 件
// データサイズ 4バイト
#define COL2_PAR "COL_TYPE=M;DATA_SIZE=4;SMPL_RATE=1000;SAVE_COUNT=1000"
#define COL2_NAME "ch2" // カラム名称
…
// カラム2 作成
if ((cids[1] = sdts_create_col(db, (sdid_t)COL2_NAME,
(char *)COL2_PAR)) < 0) {
printf("error sdts_create_col [%d]\n", sd_get_err());
(void)sdts_close_db(db);
sd_end();
return 1;
}
カラムパラメータ
このサンプルコードでは、カラム作成時のパラメータとして以下の項目を設定しています。
- COL_TYPE (カラムタイプ)
- DATA_SIZE (1データのサイズ)
- SMPL_RATE (サンプリングレート)
- SAVE_COUNT (メモリ保存件数)
COL_TYPE(カラムタイプ)
カラムタイプは、以下のいづれかを指定することができます。
このサンプルでは、Middle を指定しています。
- ‘H’(High)
- ‘M’ (Middle)
- ‘L’ (Low)
DATA_SIZE(1データのサイズ)
格納する1つのデータのサイズを指定します。
このサンプルでは、4バイトを指定しています。
SMPL_RATE(サンプリングレート)
サンプリングレートを指定します。
このサンプルでは、10kHzを指定しています。
サンプリングレート指定することで、初回登録時のタイムスタンプとサンプリングレートで、登録データのタイムスタンプを出力します。
※Middleタイプの場合、カラム作成後にサンプリングレートを変更することができます。
SAVE_COUNT(メモリ保存件数)
メモリ上に保持するデータ件数を指定します。
この件数を超えるデータを格納する場合、古いデータから削除されます。
カラム作成の戻り値(カラムID)
カラム作成(sdts_create_col)を行った際の戻り値は、カラムIDになります。
カラムデータの取得などに利用します。