From d8baa50b97a98e57d817ee3935c0d203f4acdff1 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Fri, 2 Mar 2012 00:24:47 +0100 Subject: ebus-racket: rename db.plt->db.rkt --- ebus-racket/db.plt | 22 ---------------------- ebus-racket/db.rkt | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 22 deletions(-) delete mode 100644 ebus-racket/db.plt create mode 100644 ebus-racket/db.rkt diff --git a/ebus-racket/db.plt b/ebus-racket/db.plt deleted file mode 100644 index 050eafe..0000000 --- a/ebus-racket/db.plt +++ /dev/null @@ -1,22 +0,0 @@ -#lang racket/base -(require (prefix-in db: (planet ryanc/db:1:5))) - -(define pgc - (db:postgresql-connect #:user "ebus" - #:database "ebus" - #:password "ebus" - #:server "10.2.2.26")) - - -(define (query-sensor-id sensor-name) - (db:query-value pgc "select id from sensor where name = $1" sensor-name)) - -(define (insert sensor-name value-float value-int value-string) - (let ([sensor-id (query-sensor-id sensor-name)] - [type (cond ((not (void? value-string)) "string") - ((not (void? value-float)) "float") - ((not (void? value-int)) "int"))]) - (db:query-exec (string-append "INSERT INTO value(timestamp, sensor_id, type, value_float, value_int, value_string) " - "VALUES (now(), $1, $2, $3, $4, $5)") - sensor-id type value-float value-int value-string))) - ;(db:query-exec pgc "select \ No newline at end of file diff --git a/ebus-racket/db.rkt b/ebus-racket/db.rkt new file mode 100644 index 0000000..14817e5 --- /dev/null +++ b/ebus-racket/db.rkt @@ -0,0 +1,37 @@ +#lang racket/base +(require (prefix-in db: (planet ryanc/db:1:5))) + +(define pgc + (db:postgresql-connect #:user "ebus" + #:database "ebus" + #:password "ebus" + #:server "10.2.2.26")) + +;; Query ID of sensor given by sensor-name +;; Returns null if sensor is undefined +(define (get-sensor-id sensor-name) + (with-handlers ([exn:fail? (lambda (exn) (void))]) + (db:query-value pgc "SELECT id FROM sensor WHERE name = $1" sensor-name))) + +;; Create Sensor-ID with given name +;; returns id +(define (create-sensor-id sensor-name) + (db:query-exec "INSERT INTO sensor(name) VALUES ($1)" sensor-name) + (get-sensor-id sensor-name)) + +;; Get ID of sensor given by sensor-name +;; define sensor if needed +(define (sensor-id sensor-name) + (let ([id (get-sensor-id sensor-name)]) + (cond ((void? id) (create-sensor-id sensor-id)) + (else id)))) + +(define (insert sensor-name value-float value-int value-string) + (let ([sensor-id (sensor-id sensor-name)] + [type (cond ((not (void? value-string)) "string") + ((not (void? value-float)) "float") + ((not (void? value-int)) "int"))]) + (db:query-exec (string-append "INSERT INTO value(timestamp, sensor_id, type, value_float, value_int, value_string) " + "VALUES (now(), $1, $2, $3, $4, $5)") + sensor-id type value-float value-int value-string))) + -- cgit v1.2.1