packages feed

hArduino 0.5 → 0.6

raw patch · 4 files changed

+37/−33 lines, 4 filesdep −unixPVP ok

version bump matches the API change (PVP)

Dependencies removed: unix

API changes (from Hackage documentation)

Files

CHANGES.md view
@@ -1,8 +1,14 @@ * Hackage: (http://hackage.haskell.org/package/hArduino) * GitHub:  (http://leventerkok.github.com/hArduino) -* Latest Hackage released version: 0.5+* Latest Hackage released version: 0.6 +### Version 0.6, 2013-03-08++ * Make hArduino Windows friendly by removing dependence+   on the unix package. Thanks to Andriy Drozdyuk for pointing+   out the Windows compilation issue. (Tested on Windows XP.)+ ### Version 0.5, 2013-03-07    * New hardware components supported:@@ -27,7 +33,7 @@      * time: Measure the time taken by an Arduino action      * timeOut: Run an action only for the given-time-out -### Version 0.4, 2013-02-05+### Version 0.4, 2013-03-05   * Bugfix: Remove spurious extra call to user program  * Rework pin assignment logic, making use of analog/digital pins much more clearer.
System/Hardware/Arduino/Comm.hs view
@@ -9,19 +9,19 @@ -- Basic serial communication routines ------------------------------------------------------------------------------- +{-# LANGUAGE CPP                 #-} {-# LANGUAGE NamedFieldPuns      #-} {-# LANGUAGE ScopedTypeVariables #-} module System.Hardware.Arduino.Comm where  import Control.Monad        (when, forever)-import Control.Concurrent   (MVar, myThreadId, ThreadId, throwTo, newChan, newMVar, newEmptyMVar, putMVar, writeChan, readChan, forkIO, modifyMVar_, tryTakeMVar, killThread)+import Control.Concurrent   (MVar, ThreadId, newChan, newMVar, newEmptyMVar, putMVar, writeChan, readChan, forkIO, modifyMVar_, tryTakeMVar, killThread) import Control.Exception    (tryJust, AsyncException(UserInterrupt), handle, SomeException) import Control.Monad.State  (runStateT, gets, liftIO, modify) import Data.Bits            (testBit, (.&.)) import Data.List            (intercalate, isInfixOf) import Data.Maybe           (listToMaybe) import Data.Word            (Word8)-import System.Posix.Signals (installHandler, keyboardSignal, Handler(Catch)) import System.Timeout       (timeout) import System.IO            (stderr, hPutStrLn) @@ -51,9 +51,7 @@             -> Arduino () -- ^ The Haskell controller program to run             -> IO () withArduino verbose fp program =-        do tid <- myThreadId-           _ <- installHandler keyboardSignal (Catch (throwTo tid UserInterrupt)) Nothing-           debugger <- mkDebugPrinter verbose+        do debugger <- mkDebugPrinter verbose            debugger $ "Accessing arduino located at: " ++ show fp            listenerTid <- newEmptyMVar            let Arduino controller = do initOK <- initialize listenerTid
System/Hardware/Arduino/SamplePrograms/Distance.hs view
@@ -44,7 +44,7 @@ -- Wiring: Simply connect VCC and GND of HC-SR04 to Arduino as usual. The @Echo@ line on the sensor is connected -- to Arduino pin 2. The @Trig@ line is connected on the board to the @Echo@ line, i.e., they both connect to the -- same pin on the Arduino. We also have a led on pin 13 that we will light-up--- if the distance detected is less than 2 centimeters, indicating an impending crash!+-- if the distance detected is less than 5 centimeters, indicating an impending crash! -- --  <<http://github.com/LeventErkok/hArduino/raw/master/System/Hardware/Arduino/SamplePrograms/Schematics/Distance.png>> distance :: IO ()@@ -59,6 +59,6 @@                       Nothing -> liftIO $ putStrLn "Distance: No measurement received."                       Just d  -> do let c = microSecondsToCentimeters d                                     liftIO $ putStrLn $ "Distance: " ++ showGFloat (Just 2) c " centimeters."-                                    digitalWrite led (c < 2)+                                    digitalWrite led (c < 5)        update = forever $ do measure                              delay 1000
hArduino.cabal view
@@ -1,5 +1,5 @@ Name:          hArduino-Version:       0.5+Version:       0.6 Category:      Hardware Synopsis:      Control your Arduino board from Haskell. Description:   hArduino library allows Haskell programs to control Arduino boards and@@ -25,26 +25,26 @@     location:   git://github.com/LeventErkok/hArduino.git  Library-  default-language: Haskell2010-  ghc-options     : -Wall-  Build-depends   : base  >= 4 && < 5, serialport >= 0.4.5, bytestring, mtl, unix, containers, time-  Exposed-modules : System.Hardware.Arduino-                  , System.Hardware.Arduino.Parts-                  , System.Hardware.Arduino.Parts.LCD-                  , System.Hardware.Arduino.Parts.ShiftRegisters-                  , System.Hardware.Arduino.Parts.SevenSegmentCodes-                  , System.Hardware.Arduino.Parts.Servo-                  , System.Hardware.Arduino.SamplePrograms.Analog-                  , System.Hardware.Arduino.SamplePrograms.Blink-                  , System.Hardware.Arduino.SamplePrograms.Button-                  , System.Hardware.Arduino.SamplePrograms.Counter-                  , System.Hardware.Arduino.SamplePrograms.Distance-                  , System.Hardware.Arduino.SamplePrograms.LCD-                  , System.Hardware.Arduino.SamplePrograms.Pulse-                  , System.Hardware.Arduino.SamplePrograms.SevenSegment-                  , System.Hardware.Arduino.SamplePrograms.Servo-  Other-modules   : System.Hardware.Arduino.Comm-                  , System.Hardware.Arduino.Data-                  , System.Hardware.Arduino.Firmata-                  , System.Hardware.Arduino.Protocol-                  , System.Hardware.Arduino.Utils+  default-language  : Haskell2010+  ghc-options       : -Wall+  Build-depends     : base  >= 4 && < 5, serialport >= 0.4.5, bytestring, mtl, containers, time+  Exposed-modules   : System.Hardware.Arduino+                    , System.Hardware.Arduino.Parts+                    , System.Hardware.Arduino.Parts.LCD+                    , System.Hardware.Arduino.Parts.ShiftRegisters+                    , System.Hardware.Arduino.Parts.SevenSegmentCodes+                    , System.Hardware.Arduino.Parts.Servo+                    , System.Hardware.Arduino.SamplePrograms.Analog+                    , System.Hardware.Arduino.SamplePrograms.Blink+                    , System.Hardware.Arduino.SamplePrograms.Button+                    , System.Hardware.Arduino.SamplePrograms.Counter+                    , System.Hardware.Arduino.SamplePrograms.Distance+                    , System.Hardware.Arduino.SamplePrograms.LCD+                    , System.Hardware.Arduino.SamplePrograms.Pulse+                    , System.Hardware.Arduino.SamplePrograms.SevenSegment+                    , System.Hardware.Arduino.SamplePrograms.Servo+  Other-modules     : System.Hardware.Arduino.Comm+                    , System.Hardware.Arduino.Data+                    , System.Hardware.Arduino.Firmata+                    , System.Hardware.Arduino.Protocol+                    , System.Hardware.Arduino.Utils