extern int wiringPiDebug ;
+// External functions I can't be bothered creating a separate .h file for:
+
extern void doReadall (void) ;
extern void doReadallOld (void) ;
+extern void doPins (void) ;
+
#ifndef TRUE
# define TRUE (1==1)
# define FALSE (1==2)
#endif
-#define VERSION "2.10"
+#define VERSION "2.14"
#define I2CDETECT "/usr/sbin/i2cdetect"
int wpMode ;
" gpio gbw <channel> <value>" ; // No trailing newline needed here.
+#ifdef NOT_FOR_NOW
+/*
+ * decodePin:
+ * Decode a pin "number" which can actually be a pin name to represent
+ * one of the Pi's on-board pins.
+ *********************************************************************************
+ */
+
+static int decodePin (const char *str)
+{
+
+// The first case - see if it's a number:
+
+ if (isdigit (str [0]))
+ return atoi (str) ;
+
+ return 0 ;
+}
+#endif
+
+
/*
* changeOwner:
* Change the ownership of the file to the real userId of the calling
else if (strcasecmp (mode, "down") == 0) pullUpDnControl (pin, PUD_DOWN) ;
else if (strcasecmp (mode, "tri") == 0) pullUpDnControl (pin, PUD_OFF) ;
else if (strcasecmp (mode, "off") == 0) pullUpDnControl (pin, PUD_OFF) ;
+
+// Undocumented
+
+ else if (strcasecmp (mode, "alt0") == 0) pinModeAlt (pin, 0b100) ;
+ else if (strcasecmp (mode, "alt1") == 0) pinModeAlt (pin, 0b101) ;
+ else if (strcasecmp (mode, "alt2") == 0) pinModeAlt (pin, 0b110) ;
+ else if (strcasecmp (mode, "alt3") == 0) pinModeAlt (pin, 0b111) ;
+ else if (strcasecmp (mode, "alt4") == 0) pinModeAlt (pin, 0b011) ;
+ else if (strcasecmp (mode, "alt5") == 0) pinModeAlt (pin, 0b010) ;
else
{
fprintf (stderr, "%s: Invalid mode: %s. Should be in/out/pwm/clock/up/down/tri\n", argv [1], mode) ;
int main (int argc, char *argv [])
{
int i ;
+ int model, rev, mem ;
+ char *maker ;
if (getenv ("WIRINGPI_DEBUG") != NULL)
{
if (strcmp (argv [1], "-v") == 0)
{
printf ("gpio version: %s\n", VERSION) ;
- printf ("Copyright (c) 2012-2013 Gordon Henderson\n") ;
+ printf ("Copyright (c) 2012-2014 Gordon Henderson\n") ;
printf ("This is free software with ABSOLUTELY NO WARRANTY.\n") ;
printf ("For details type: %s -warranty\n", argv [0]) ;
printf ("\n") ;
- printf ("This Raspberry Pi is a revision %d board.\n", piBoardRev ()) ;
+ piBoardId (&model, &rev, &mem, &maker) ;
+ printf ("Raspberry Pi Details:\n") ;
+ printf (" Type: %s, Revision: %s, Memory: %dMB, Maker: %s\n",
+ piModelNames [model], piRevisionNames [rev], mem, maker) ;
return 0 ;
}
else if (strcasecmp (argv [1], "drive" ) == 0) doPadDrive (argc, argv) ;
else if (strcasecmp (argv [1], "readall" ) == 0) doReadallOld () ;
else if (strcasecmp (argv [1], "nreadall" ) == 0) doReadall () ;
+ else if (strcasecmp (argv [1], "pins" ) == 0) doPins () ;
else if (strcasecmp (argv [1], "i2cdetect") == 0) doI2Cdetect (argc, argv) ;
else if (strcasecmp (argv [1], "i2cd" ) == 0) doI2Cdetect (argc, argv) ;
else if (strcasecmp (argv [1], "reset" ) == 0) doReset (argv [0]) ;