-
Notifications
You must be signed in to change notification settings - Fork 119
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* add ethernet trasport for PORTENTA_H7_M7 in uros header * add ethernet trasport for PORTENTA_H7_M7 cpp * add ethernet publish example * correct error msg add * add comment ip * change topic_name, namespace * update mac address Co-authored-by: Pablo Garrido <[email protected]> * remove comment Co-authored-by: Pablo Garrido <[email protected]> * remove not used headers * fix error condition Co-authored-by: Pablo Garrido <[email protected]> (cherry picked from commit b12ed9b) Co-authored-by: Jenifen <[email protected]>
- Loading branch information
1 parent
26a3931
commit 9d48bd8
Showing
3 changed files
with
89 additions
and
3 deletions.
There are no files selected for viewing
76 changes: 76 additions & 0 deletions
76
examples/micro-ros_publisher_ethernet/micro-ros_publisher_ethernet.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
#include <micro_ros_arduino.h> | ||
|
||
#include <stdio.h> | ||
#include <rcl/rcl.h> | ||
#include <rcl/error_handling.h> | ||
#include <rclc/rclc.h> | ||
#include <rclc/executor.h> | ||
#include <std_msgs/msg/int32.h> | ||
|
||
#if !defined(TARGET_STM32F4) && !defined(ARDUINO_TEENSY41) && !defined(TARGET_PORTENTA_H7_M7) | ||
#error This example is only avaible for Arduino Portenta, Arduino Teensy41 and STM32F4 | ||
#endif | ||
|
||
rcl_publisher_t publisher; | ||
std_msgs__msg__Int32 msg; | ||
rclc_support_t support; | ||
rcl_allocator_t allocator; | ||
rcl_node_t node; | ||
|
||
#define LED_PIN 13 | ||
|
||
#define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){error_loop();}} | ||
#define RCSOFTCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){}} | ||
|
||
|
||
|
||
void error_loop(){ | ||
while(1){ | ||
digitalWrite(LED_PIN, !digitalRead(LED_PIN)); | ||
delay(100); | ||
} | ||
} | ||
|
||
void timer_callback(rcl_timer_t * timer, int64_t last_call_time) | ||
{ | ||
RCLC_UNUSED(last_call_time); | ||
if (timer != NULL) { | ||
RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); | ||
msg.data++; | ||
} | ||
} | ||
|
||
void setup() { | ||
byte arduino_mac[] = { 0xAA, 0xBB, 0xCC, 0xEE, 0xDD, 0xFF }; | ||
IPAddress arduino_ip(192, 168, 1, 177); | ||
IPAddress agent_ip(192, 168, 1, 113); | ||
set_microros_native_ethernet_udp_transports(arduino_mac, arduino_ip, agent_ip, 9999); | ||
|
||
pinMode(LED_PIN, OUTPUT); | ||
digitalWrite(LED_PIN, HIGH); | ||
|
||
delay(2000); | ||
|
||
allocator = rcl_get_default_allocator(); | ||
|
||
//create init_options | ||
RCCHECK(rclc_support_init(&support, 0, NULL, &allocator)); | ||
|
||
// create node | ||
RCCHECK(rclc_node_init_default(&node, "micro_ros_arduino_ethernet_node", "namespace", &support)); | ||
|
||
// create publisher | ||
RCCHECK(rclc_publisher_init_best_effort( | ||
&publisher, | ||
&node, | ||
ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32), | ||
"topic_name")); | ||
|
||
msg.data = 0; | ||
} | ||
|
||
void loop() { | ||
RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); | ||
msg.data++; | ||
delay(100); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters