diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-10-07 08:05:45 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-10-07 08:05:45 +0200 |
commit | c2687a777444f68e7a7685ec628848b950f02571 (patch) | |
tree | 9d590036abf298203f016e43a31f5da8d4e707b5 /src/modules/px4iofirmware/dsm.c | |
parent | cb0cbe479ae4bdaab6b6570857d240940fea713d (diff) | |
download | px4-firmware-c2687a777444f68e7a7685ec628848b950f02571.tar.gz px4-firmware-c2687a777444f68e7a7685ec628848b950f02571.tar.bz2 px4-firmware-c2687a777444f68e7a7685ec628848b950f02571.zip |
ST24 integration in IO firmware
Diffstat (limited to 'src/modules/px4iofirmware/dsm.c')
-rw-r--r-- | src/modules/px4iofirmware/dsm.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/modules/px4iofirmware/dsm.c b/src/modules/px4iofirmware/dsm.c index d3f365822..6e57c9ec7 100644 --- a/src/modules/px4iofirmware/dsm.c +++ b/src/modules/px4iofirmware/dsm.c @@ -452,10 +452,12 @@ dsm_decode(hrt_abstime frame_time, uint16_t *values, uint16_t *num_values) * * @param[out] values pointer to per channel array of decoded values * @param[out] num_values pointer to number of raw channel values returned, high order bit 0:10 bit data, 1:11 bit data + * @param[out] n_butes number of bytes read + * @param[out] bytes pointer to the buffer of read bytes * @return true=decoded raw channel values updated, false=no update */ bool -dsm_input(uint16_t *values, uint16_t *num_values) +dsm_input(uint16_t *values, uint16_t *num_values, uint8_t *n_bytes, uint8_t **bytes) { ssize_t ret; hrt_abstime now; @@ -478,8 +480,12 @@ dsm_input(uint16_t *values, uint16_t *num_values) ret = read(dsm_fd, &dsm_frame[dsm_partial_frame_count], DSM_FRAME_SIZE - dsm_partial_frame_count); /* if the read failed for any reason, just give up here */ - if (ret < 1) + if (ret < 1) { return false; + } else { + *n_bytes = ret; + *bytes = &dsm_frame[dsm_partial_frame_count]; + } dsm_last_rx_time = now; |