[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [4717]
From: |
antoine drouin |
Subject: |
[paparazzi-commits] [4717] |
Date: |
Wed, 24 Mar 2010 09:59:11 +0000 |
Revision: 4717
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4717
Author: poine
Date: 2010-03-24 09:59:11 +0000 (Wed, 24 Mar 2010)
Log Message:
-----------
Added Paths:
-----------
paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
paparazzi3/trunk/sw/airborne/fms/fms_spi_link.c
paparazzi3/trunk/sw/airborne/fms/fms_spi_link.h
Added: paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
(rev 0)
+++ paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h 2010-03-24
09:59:11 UTC (rev 4717)
@@ -0,0 +1,13 @@
+#ifndef FMS_AUTOPILOT_H
+#define FMS_AUTOPILOT_H
+
+#include <inttypes.h>
+
+struct AutopilotMessageFoo {
+ uint32_t foo;
+ uint32_t bar;
+ uint32_t blaa;
+};
+
+
+#endif /* FMS_AUTOPILOT_H */
Added: paparazzi3/trunk/sw/airborne/fms/fms_spi_link.c
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_spi_link.c
(rev 0)
+++ paparazzi3/trunk/sw/airborne/fms/fms_spi_link.c 2010-03-24 09:59:11 UTC
(rev 4717)
@@ -0,0 +1,55 @@
+#include "fms_spi_link.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <sys/ioctl.h>
+#include <linux/types.h>
+#include <linux/spi/spidev.h>
+
+int spi_link_init(void) {
+
+ spi_link.device = "/dev/spidev1.1";
+ spi_link.mode = 0;
+ spi_link.bits = 8;
+ spi_link.speed = 500000;
+ spi_link.delay = 1;
+
+ spi_link.fd = open(spi_link.device, O_RDWR);
+ if (spi_link.fd < 0)
+ return -1;
+
+ int ret = 0;
+ ret = ioctl(spi_link.fd, SPI_IOC_WR_MODE, &spi_link.mode);
+ if (ret == -1)
+ return -2;
+
+ ret = ioctl(spi_link.fd, SPI_IOC_WR_BITS_PER_WORD, &spi_link.bits);
+ if (ret == -1)
+ return -3;
+
+ ret = ioctl(spi_link.fd, SPI_IOC_WR_MAX_SPEED_HZ, &spi_link.speed);
+ if (ret == -1)
+ return -4;
+
+ return 0;
+}
+
+int spi_link_send(const void *buf_out, size_t count) {
+ int ret;
+
+ char buf_in[256]; /* FIXME, check size ? */
+
+ struct spi_ioc_transfer tr = {
+ .tx_buf = (unsigned long)buf_out,
+ .rx_buf = (unsigned long)&buf_in,
+ .len = sizeof(*buf_out),
+ .delay_usecs = spi_link.delay,
+ .speed_hz = spi_link.speed,
+ .bits_per_word = spi_link.bits,
+ };
+ ret = ioctl(spi_link.fd, SPI_IOC_MESSAGE(1), &tr);
+
+ return ret;
+}
Added: paparazzi3/trunk/sw/airborne/fms/fms_spi_link.h
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_spi_link.h
(rev 0)
+++ paparazzi3/trunk/sw/airborne/fms/fms_spi_link.h 2010-03-24 09:59:11 UTC
(rev 4717)
@@ -0,0 +1,21 @@
+#ifndef FMS_SPI_LINK_H
+#define FMS_SPI_LINK_H
+
+#include <inttypes.h>
+#include <unistd.h>
+
+struct SpiLink {
+ int fd;
+ char* device;
+ uint8_t mode;
+ uint8_t bits;
+ uint32_t speed;
+ uint16_t delay;
+};
+
+struct SpiLink spi_link;
+
+extern int spi_link_init(void);
+extern int spi_link_send(const void *buf, size_t count);
+
+#endif /* FMS_SPI_LINK_H */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [4717],
antoine drouin <=