chiark / gitweb /
wiringpi: initial skeleton
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 8 Jun 2016 00:19:07 +0000 (01:19 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 8 Jun 2016 00:19:07 +0000 (01:19 +0100)
wiringpi/Makefile [new file with mode: 0644]
wiringpi/chiark_tcl_wiringpi.h [new file with mode: 0644]
wiringpi/wiringpi.c [new file with mode: 0644]
wiringpi/wiringpi.tct [new file with mode: 0644]

diff --git a/wiringpi/Makefile b/wiringpi/Makefile
new file mode 100644 (file)
index 0000000..1862054
--- /dev/null
@@ -0,0 +1,7 @@
+BASE_DIR =     ../base
+EXTBASE =      wiringpi
+CFILES =       wiringpi
+LDLIBS +=      -lwiringPi
+
+include ../base/extension.make
+
diff --git a/wiringpi/chiark_tcl_wiringpi.h b/wiringpi/chiark_tcl_wiringpi.h
new file mode 100644 (file)
index 0000000..89d849d
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * wiringPi binding for Tcl
+ * Copyright 2016 Ian Jackson
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef WIRINGPITCL_H
+#define WIRINGPITCL_H
+
+#include "chiark-tcl.h"
+
+#include "wiringpi+tcmdif.h"
+
+#endif /*WIRINGPITCL_H*/
diff --git a/wiringpi/wiringpi.c b/wiringpi/wiringpi.c
new file mode 100644 (file)
index 0000000..e71cb53
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * wiringpi setup [MODE]
+ *     MODE is one of -g -1 -p, as for gpio(1)
+ *     optional, if not called is equivalent to saying just "setup"
+ *     may not be called after any other wiringpi use in whole program
+ *     there is no way to un-setup
+ *
+ * Most of the rest are very similar to gpio(1):
+ *   boardRev => integer (see wiringPi.h)
+ *   boardId => [list MODEL REV MEM MAKER OVERVOLTED]
+ *   mode PIN MODE
+ *       MODEs are
+ *             in out pwm pwmTone clock up down tri off
+ *             alt0 alt1 alt2 alt3 alt4 alt5
+ *   read PIN => 0|1
+ *   write PIN 0|1
+ *   aread PIN => VAL
+ *   write PIN VAL
+ *   pwm PIN VAL
+ *   clock PIN FREQ
+ *   drive GROUP VALUE
+ *   pwm-bal|pwm-ms PIN
+ *   pwmr PIN RANGE
+ *   pwmc PIN CLOCK
+ *   pwmTone PIN FREQ
+ */
+/* ---8<--- end of documentation comment --8<-- */
+
+/*
+ * wiringpi.c - wiringPi binding for Tcl
+ * Copyright 2016 Ian Jackson
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+
+#include "chiark_tcl_wiringpi.h"
+
+/*---------- important types and forward declarations ----------*/
+
+/*---------- main hooks for tcl ----------*/
+
+CHT_INIT(wiringpi, {}, CHTI_COMMANDS(cht_wiringpitoplevel_entries))
diff --git a/wiringpi/wiringpi.tct b/wiringpi/wiringpi.tct
new file mode 100644 (file)
index 0000000..7aadecb
--- /dev/null
@@ -0,0 +1,82 @@
+# wiringpi binding for Tcl
+# Copyright 2006-2012 Ian Jackson
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this library; if not, see <http://www.gnu.org/licenses/>.
+
+
+Table *wiringpitoplevel TopLevel_Command
+       gpio
+               dispatch(WiringPiTcl/_SubCommand, "wiringpi subcommand")
+
+Table wiringpitcl WiringPiTcl_SubCommand
+       setup
+               ...     obj
+       boardRev
+               =>      int
+       boardId
+               =>      obj
+       mode
+               pin     int
+               mode    enum(WiringPiTcl_Mode/, "wiringpi pin mode")
+       read
+               pin     int
+               =>      int
+       write
+               pin     int
+               val     int
+       aread
+               pin     int
+               =>      int
+       awrite
+               pin     int
+               val     int
+       pwm
+               pin     int
+               val     int
+       clock
+               pin     int
+               freq    int
+       drive
+               group   int
+               value   int
+       pwm-bal
+               pin     int
+       pwm-ms
+               pin     int
+       pwmTone
+               pin     int
+               val     int
+       pwmr
+               pin     int
+               val     int
+       pwmc
+               pin     int
+               clk     int
+
+Table wiringpitcl_mode WiringPiTcl_Mode
+       in
+       out
+       pwm
+       pwmTone
+       clock
+       up
+       down
+       tri
+       off
+       alt0
+       alt1
+       alt2
+       alt3
+       alt4
+       alt5