SPIKE-RT C API Reference [Japanese]
An RTOS-based software platform for LEGO® Education SPIKE™.
読み取り中…
検索中…
一致する文字列を見つけられません
ForceSensor.h
1//
2// ForceSensor.h
3//
4// Copyright (c) 2025 Embedded Technology Software Design Robot Contest
5//
6
7#ifndef SPIKE_CPP_API_FORCE_SENSOR_H_
8#define SPIKE_CPP_API_FORCE_SENSOR_H_
9
10#include <cstdint>
11extern "C" {
13}
14
15#include <libcpp/spike/Port.h>
16
17namespace spikeapi {
22{
23public:
24
29 ForceSensor(EPort port) {
30 /* エラー時にはNULLが設定される */
31 mDevice = pup_force_sensor_get_device(static_cast<pbio_port_id_t>(port));
32 }
33
38 float getForce() const {
39 return pup_force_sensor_force(mDevice);
40 }
41
46 float getDistance() const {
47 return pup_force_sensor_distance(mDevice);
48 }
49
56 bool isPressed(float force) const {
57 return pup_force_sensor_pressed(mDevice, force);
58 }
59
65 bool isTouched() const {
66 return pup_force_sensor_touched(mDevice);
67 }
68
73 bool hasError() { return mDevice == 0; }
74
75private:
76 pup_device_t *mDevice;
77}; // class ForceSensor
78} // namespace spikeapi
79
80#endif // !SPIKE_CPP_API_FORCE_SENSOR_H_
Definition ForceSensor.h:22
bool isPressed(float force) const
Definition ForceSensor.h:56
bool hasError()
Definition ForceSensor.h:73
float getDistance() const
Definition ForceSensor.h:46
bool isTouched() const
Definition ForceSensor.h:65
float getForce() const
Definition ForceSensor.h:38
ForceSensor(EPort port)
Definition ForceSensor.h:29
API for force sensors
bool pup_force_sensor_pressed(pup_device_t *pdev, float force)
フォースセンサのボタンが押されているかを検出する。
Definition forcesensor.c:83
pup_device_t * pup_force_sensor_get_device(pbio_port_id_t port)
ポートIDで指定されたフォースンサへのPUPデバイスポインタを取得する。
Definition forcesensor.c:54
float pup_force_sensor_force(pup_device_t *pdev)
フォースセンサで力を測定する。
Definition forcesensor.c:74
bool pup_force_sensor_touched(pup_device_t *pdev)
フォースセンサのボタンが押されているかを検出する。
Definition forcesensor.c:89
float pup_force_sensor_distance(pup_device_t *pdev)
フォースセンサのボタンの移動距離を取得する。
Definition forcesensor.c:79
Definition pup_device.c:21