関数プロトタイプ:
uint_fast8_t getTouch(touch_point_t *tp, uint_fast8_t count = 1)
機能説明:
引数:
戻り値:
関数プロトタイプ:
uint_fast8_t getTouchRaw(touch_point_t *tp, uint_fast8_t count = 1)
機能説明:
引数:
戻り値:
関数プロトタイプ:
void convertRawXY(touch_point_t *tp, uint_fast8_t count = 1)
機能説明:
引数:
戻り値:
関数プロトタイプ:
void calibrateTouch(uint16_t* parameters, const T &color_fg, const T &color_bg, uint8_t size = 10)
機能説明
引数:
戻り値:
関数プロトタイプ:
void setTouchCalibrate(uint16_t *parameters)
機能説明:
引数:
戻り値:
サンプルプログラム:
#include <Arduino.h>
#include <Preferences.h>
#include <M5GFX.h>
M5GFX display;
uint16_t w;
uint16_t h;
const char* NAMESPACE = "m5_data";
const char* DATA_KEY = "user_data";
struct Calibration {
bool calibration_flag = false;
uint16_t touch_point[8];//4 point, each has (X,Y)
};
Calibration Cal;
void setup() {
display.begin();
display.setRotation(3);
if(display.isEPD())
{
display.setColorDepth(8);//電子ペーパー製品は最大8ビットのビット深度をサポートします。
display.setEpdMode(epd_fastest);
}
else
{
display.setColorDepth(16);
}
display.clear(TFT_WHITE);
display.setFont(&fonts::FreeMonoBoldOblique12pt7b);
display.setTextColor(TFT_BLACK);
display.setTextSize(1);
display.setCursor(0, 0);
// 設定領域の初期化
Preferences preferences;
// 名前空間を開く(存在しない場合は作成)
preferences.begin(NAMESPACE, false); // false -- 読み書きモード
size_t readBytes = preferences.getBytes(DATA_KEY, &Cal, sizeof(Calibration));
// データが正常に読み込まれたか確認
if (readBytes == sizeof(Calibration)) {
if(Cal.calibration_flag){
display.setTouchCalibrate(Cal.touch_point);
for (int i=0; i<8; i++) {
display.printf("%d ", Cal.touch_point[i]);
}
// display.setTextDatum(top_center);
display.println("キャリブレーション設定データの読み込みに成功しました!");
}
}
else {
// デフォルト初期化
display.calibrateTouch(Cal.touch_point, BLACK, YELLOW);
display.clear();
display.println("キャリブレーションデータの設定に成功しました。以下に表示します:\n");
for (int i=0; i<8; i++) {
display.printf("%d ", Cal.touch_point[i]);
}
display.println();
Cal.calibration_flag = true;
// キャリブレーションデータを保存
size_t writtenBytes = preferences.putBytes(DATA_KEY, &Cal, sizeof(Calibration));
if (writtenBytes == sizeof(Calibration)) {
display.println("\nキャリブレーションデータの保存に成功しました");
} else {
display.println("\nキャリブレーションデータの保存に失敗しました");
}
// 名前空間を閉じる
preferences.end();
}
}
void loop() {
}