kstmApp/src/aSubReadDHT.c
author Heinz Junkes <junkes@fhi-berlin.mpg.de>
Wed, 09 Sep 2015 18:06:59 +0200
changeset 1 7029db7ac3db
permissions -rw-r--r--
Add adcPi device support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     1
#include <stdio.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     2
#include <string.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     3
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     4
#include <dbDefs.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     5
#include <registryFunction.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     6
#include <subRecord.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     7
#include <aSubRecord.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     8
#include <epicsExport.h>
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     9
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    10
#include "pi_2_dht_read.h"
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    11
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    12
#define USED_DHT_TYPE 22
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    13
int aSubReadDHTDebug = 0;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    14
unsigned short GPIOPin;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    15
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    16
static long aSubReadDHTInit(aSubRecord *precord)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    17
{
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    18
unsigned short *a;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    19
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    20
  if (aSubReadDHTDebug)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    21
    printf("Record %s called aSubReadDHTInit(%p)\n", precord->name, (void*) precord);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    22
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    23
  a = (unsigned short *)precord->a; 
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    24
  GPIOPin = a[0];
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    25
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    26
  if (aSubReadDHTDebug)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    27
    printf("Record %s : GPIOPin = %d\n", precord->name, GPIOPin);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    28
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    29
  return 0;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    30
}
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    31
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    32
static long aSubReadDHTProcess(aSubRecord *precord)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    33
{
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    34
float humidity, temperature;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    35
int ret;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    36
double *vala, *valb;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    37
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    38
  if (aSubReadDHTDebug)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    39
    printf("Record %s called aSubRreadDHTProcess(%p)\n", precord->name, (void*) precord);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    40
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    41
  ret = pi_2_dht_read(USED_DHT_TYPE, GPIOPin, &humidity, &temperature);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    42
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    43
  if (aSubReadDHTDebug)
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    44
    printf(" ret : %d, humidity = %f, temperature = %f\n", ret, humidity, temperature);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    45
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    46
  if (!ret) {
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    47
    vala = (double *)precord->vala;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    48
    valb = (double *)precord->valb;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    49
    vala[0] = (double)temperature;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    50
    valb[0] = (double)humidity;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    51
  }
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    52
  return 0;
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    53
}
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    54
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    55
/* Register these symbols for use by IOC code: */
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    56
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    57
epicsExportAddress(int, aSubReadDHTDebug);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    58
epicsRegisterFunction(aSubReadDHTInit);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    59
epicsRegisterFunction(aSubReadDHTProcess);
7029db7ac3db Add adcPi device support
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    60