mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 02:55:07 +08:00
lightware_lase_serial: fix pointer for enabling serial mode
const char *data = "www\r\n"; Defines a cstring of 6 bytes: 'w', 'w', 'w', '\r', '\n', '\0' type of data: char const* type of &data: char const** So when we call write(_fd, &data, strlen(data)); then strlen(data) == 5 and we send the 4 byte memory address of data + some additional random byte. Correct is write(_fd, data, strlen(data)); where char const* gets casted to const void * and we pass the pointer to the content of data. The fundamental problem here is write() not being typesafe.
This commit is contained in:
@@ -308,7 +308,7 @@ void LightwareLaserSerial::Run()
|
|||||||
// LW20: Enable serial mode by sending some characters
|
// LW20: Enable serial mode by sending some characters
|
||||||
if (hw_model == 8) {
|
if (hw_model == 8) {
|
||||||
const char *data = "www\r\n";
|
const char *data = "www\r\n";
|
||||||
(void)!::write(_fd, &data, strlen(data));
|
(void)!::write(_fd, data, strlen(data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user