Skip to content

Commit b75bbb5

Browse files
authored
Merge pull request #5 from tinymovr/tinymovr_v2x
Tinymovr v2x
2 parents e306490 + 84bc1cf commit b75bbb5

39 files changed

Lines changed: 865 additions & 264 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,23 @@ include_directories(
130130
set(TINYMOVR_SOURCES
131131
src/tinymovr/can.cpp
132132
src/tinymovr/comms.cpp
133+
src/tinymovr/commutation_sensor.cpp
133134
src/tinymovr/controller.cpp
134135
src/tinymovr/current.cpp
135-
src/tinymovr/encoder.cpp
136+
src/tinymovr/external_spi.cpp
137+
src/tinymovr/hall.cpp
138+
src/tinymovr/homing.cpp
136139
src/tinymovr/motor.cpp
140+
src/tinymovr/onboard.cpp
141+
src/tinymovr/position_sensor.cpp
137142
src/tinymovr/position.cpp
138143
src/tinymovr/scheduler.cpp
144+
src/tinymovr/select.cpp
145+
src/tinymovr/setup.cpp
146+
src/tinymovr/stall_detect.cpp
139147
src/tinymovr/tinymovr.cpp
140148
src/tinymovr/traj_planner.cpp
149+
src/tinymovr/user_frame.cpp
141150
src/tinymovr/velocity.cpp
142151
src/tinymovr/voltage.cpp
143152
src/tinymovr/watchdog.cpp

include/tinymovr/can.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ class Can_ : Node
2020
void set_rate(uint32_t value);
2121
uint32_t get_id(void);
2222
void set_id(uint32_t value);
23+
bool get_heartbeat(void);
24+
void set_heartbeat(bool value);
2325

2426
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* This file was automatically generated using Avlos.
3+
* https://github.com/tinymovr/avlos
4+
*
5+
* Any changes to this file will be overwritten when
6+
* content is regenerated.
7+
*/
8+
9+
#pragma once
10+
11+
#include <helpers.hpp>
12+
13+
class Commutation_sensor_ : Node
14+
{
15+
public:
16+
17+
Commutation_sensor_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
18+
Node(_can_node_id, _send_cb, _recv_cb, _delay_us_cb, _delay_us_value) {};
19+
uint8_t get_connection(void);
20+
void set_connection(uint8_t value);
21+
float get_bandwidth(void);
22+
void set_bandwidth(float value);
23+
int32_t get_raw_angle(void);
24+
float get_position_estimate(void);
25+
float get_velocity_estimate(void);
26+
27+
};

include/tinymovr/external_spi.hpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* This file was automatically generated using Avlos.
3+
* https://github.com/tinymovr/avlos
4+
*
5+
* Any changes to this file will be overwritten when
6+
* content is regenerated.
7+
*/
8+
9+
#pragma once
10+
11+
#include <helpers.hpp>
12+
13+
class External_spi_ : Node
14+
{
15+
public:
16+
17+
External_spi_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
18+
Node(_can_node_id, _send_cb, _recv_cb, _delay_us_cb, _delay_us_value) {};
19+
uint8_t get_type(void);
20+
void set_type(uint8_t value);
21+
uint8_t get_rate(void);
22+
void set_rate(uint8_t value);
23+
bool get_calibrated(void);
24+
uint8_t get_errors(void);
25+
26+
};

include/tinymovr/hall.hpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* This file was automatically generated using Avlos.
3+
* https://github.com/tinymovr/avlos
4+
*
5+
* Any changes to this file will be overwritten when
6+
* content is regenerated.
7+
*/
8+
9+
#pragma once
10+
11+
#include <helpers.hpp>
12+
13+
class Hall_ : Node
14+
{
15+
public:
16+
17+
Hall_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
18+
Node(_can_node_id, _send_cb, _recv_cb, _delay_us_cb, _delay_us_value) {};
19+
bool get_calibrated(void);
20+
uint8_t get_errors(void);
21+
22+
};

include/tinymovr/helpers.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#endif
2323

2424
#define CAN_EP_SIZE (12)
25-
#define CAN_EP_MASK ((1 << CAN_EP_SIZE) - 1)
25+
#define CAN_EP_MASK ((1UL << CAN_EP_SIZE) - 1)
2626
#define CAN_SEQ_SIZE (9)
27-
#define CAN_SEQ_MASK (((1 << CAN_SEQ_SIZE) - 1) << CAN_EP_SIZE)
27+
#define CAN_SEQ_MASK (((1UL << CAN_SEQ_SIZE) - 1) << CAN_EP_SIZE)
2828
#define CAN_DEV_SIZE (8)
29-
#define CAN_DEV_MASK (((1 << CAN_DEV_SIZE) - 1) << (CAN_EP_SIZE + CAN_SEQ_SIZE))
29+
#define CAN_DEV_MASK (((1UL << CAN_DEV_SIZE) - 1) << (CAN_EP_SIZE + CAN_SEQ_SIZE))
3030

3131
typedef void (*send_callback)(uint32_t arbitration_id, uint8_t *data, uint8_t dlc, bool rtr);
3232
typedef bool (*recv_callback)(uint32_t *arbitration_id, uint8_t *data, uint8_t *dlc);
@@ -48,7 +48,7 @@ class Node {
4848
uint8_t _dlc;
4949
uint32_t get_arbitration_id(uint32_t cmd_id)
5050
{
51-
return ((this->can_node_id << (CAN_EP_SIZE + CAN_SEQ_SIZE)) & CAN_DEV_MASK) | (cmd_id & CAN_EP_MASK);
51+
return ((((uint32_t)this->can_node_id) << (CAN_EP_SIZE + CAN_SEQ_SIZE)) & CAN_DEV_MASK) | (cmd_id & CAN_EP_MASK);
5252
}
5353
void send(uint32_t cmd_id, uint8_t *data, uint8_t data_size, bool rtr)
5454
{

include/tinymovr/motor.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ class Motor_ : Node
2424
void set_pole_pairs(uint8_t value);
2525
uint8_t get_type(void);
2626
void set_type(uint8_t value);
27-
float get_offset(void);
28-
void set_offset(float value);
29-
int8_t get_direction(void);
30-
void set_direction(int8_t value);
3127
bool get_calibrated(void);
3228
float get_I_cal(void);
3329
void set_I_cal(float value);

include/tinymovr/onboard.hpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* This file was automatically generated using Avlos.
3+
* https://github.com/tinymovr/avlos
4+
*
5+
* Any changes to this file will be overwritten when
6+
* content is regenerated.
7+
*/
8+
9+
#pragma once
10+
11+
#include <helpers.hpp>
12+
13+
class Onboard_ : Node
14+
{
15+
public:
16+
17+
Onboard_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
18+
Node(_can_node_id, _send_cb, _recv_cb, _delay_us_cb, _delay_us_value) {};
19+
bool get_calibrated(void);
20+
uint8_t get_errors(void);
21+
22+
};
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,18 @@
1010

1111
#include <helpers.hpp>
1212

13-
class Encoder_ : Node
13+
class Position_sensor_ : Node
1414
{
1515
public:
1616

17-
Encoder_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
17+
Position_sensor_(uint8_t _can_node_id, send_callback _send_cb, recv_callback _recv_cb, delay_us_callback _delay_us_cb, uint32_t _delay_us_value):
1818
Node(_can_node_id, _send_cb, _recv_cb, _delay_us_cb, _delay_us_value) {};
19-
float get_position_estimate(void);
20-
float get_velocity_estimate(void);
21-
uint8_t get_type(void);
22-
void set_type(uint8_t value);
19+
uint8_t get_connection(void);
20+
void set_connection(uint8_t value);
2321
float get_bandwidth(void);
2422
void set_bandwidth(float value);
25-
bool get_calibrated(void);
26-
uint8_t get_errors(void);
23+
int32_t get_raw_angle(void);
24+
float get_position_estimate(void);
25+
float get_velocity_estimate(void);
2726

2827
};

0 commit comments

Comments
 (0)