]> rtime.felk.cvut.cz Git - hydro.git/blobdiff - app/hydro/hydroponie.c
Minor repairs, adding analog-digital convertor source code
[hydro.git] / app / hydro / hydroponie.c
index 2ba81e90bf2dd838b95060e7e320d0386863295b..7f0c3214475c7e372f0e710454965ad19141b096 100644 (file)
     #include <system_def.h>
     #include <cpu_def.h>
 #endif
+
 // #include <lpciap.h>
 // #include <keyval_id.h>
 // #include <keyval_loc.h>
 // #include <lpciap_kvpb.h>
 
 //INCLUDE IN CURRENT DIRECTORY
-#include "hydroponie.h"
 #include "ul_idstr.h"
+#include "hydroponie.h"
 
 // CONSTANTS
 #define UL_DEV "/dev/ulan"
@@ -76,6 +77,9 @@ ul_fd_t ul_fd1;
 ul_msginfo msginfo;
 int addfilt;
 
+adc_stat_t adcst;
+// adc_cal_t adccal;
+
 #ifndef UL_WITHOUT_HANDLE
 //kvpb_block_t *kvpb_block=&kvpb_block_global;
 uloi_coninfo_t *coninfo=&uloi_coninfo_global;
@@ -84,10 +88,10 @@ ul_dyac_t *ul_dyac=&ul_dyac_global;
 
 // OBJECT INTERFACE VARIABLES
 uint16_t status_val;
-int16_t oi_temperature = 20;
+int16_t oi_temperature;
 int16_t oi_cid_temp;
 int16_t oi_per_temp;
-int16_t oi_humidity = 100;
+int16_t oi_humidity;
 int16_t oi_cid_hum;
 int16_t oi_per_hum;
 
@@ -145,8 +149,7 @@ char ul_save_adr(uint8_t uaddr)
 }
 
 
-int send_sn(void){
-    //declaration
+void send_sn(void){
     int msgsend;
 
     //.preparing of msg
@@ -162,7 +165,7 @@ int send_sn(void){
 
 }
 
-int heartbeat(void){
+void heartbeat(void){
     //int period;
     int msgsend, i;
     int len = HEART_BUF_LEN;
@@ -179,13 +182,15 @@ int heartbeat(void){
     free(buf);
 }
 
-int send_data(void) {
+void send_data(void) {
     int msgsend;
     uchar *buf;
     int i;
     int len = DATA_BUF_LEN;
 
-    get_data();
+    init_adc();
+    get_adc(&adcst);
+//     PC_adc();
 
     //.preparing of msg
     buf = (uchar *) malloc(len*sizeof(uchar));  // NULL NULL NULL CID_TEMP len_data oi_temperature CID_HUM len_data oi_humidity
@@ -193,20 +198,20 @@ int send_data(void) {
     int2buf(&buf[3],CID_TEMP);
     int2buf(&buf[5],2);
     int2buf(&buf[7],oi_temperature);
-//     int2buf(&buf[9],CID_HUM);
-//     int2buf(&buf[11],2);
-//     int2buf(&buf[13],oi_humidity);
+    int2buf(&buf[9],CID_HUM);
+    int2buf(&buf[11],2);
+    int2buf(&buf[13],oi_humidity);
 
-    msgsend = ul_send_query(ul_fd, ul_dyac->ul_dysa, UL_CMD_PDO, UL_BFL_NORE, (void*) buf, /*DATA_BUF_LEN*/9);
+    msgsend = ul_send_query(ul_fd, ul_dyac->ul_dysa, UL_CMD_PDO, UL_BFL_NORE, (void*) buf, DATA_BUF_LEN);
     printf("[I] DATA\n");
     free(buf);
     ul_freemsg(ul_fd);
 
 }
 
-int get_data(void){
+void PC_adc(void){
 #ifdef OS_POSIX
-    oi_temperature = -25000;
+    oi_temperature = 25;
     oi_humidity = 99;
 #else
     oi_temperature = AD0DR1;
@@ -214,7 +219,7 @@ int get_data(void){
 #endif
 }
 
-int accept_SDO(void) {
+void accept_SDO(void) {
 
         // setting lan configuration
         if ((ul_inepoll(ul_fd)>0) && (ul_acceptmsg(ul_fd, &msginfo)>=0)) {
@@ -308,6 +313,33 @@ void loop(void){
 
 }
 
+void blink(void){
+    #ifndef OS_POSIX
+    while(1){
+        int led1 = 200;
+        int led2 = 0;
+        mstime_t led1_time, led2_time;
+        led1_time = current_time();
+        led2_time = current_time();
+
+        if(led1 == 0) IO0SET=LED1_BIT;
+        else if(led1 == 1) IO0CLR=LED1_BIT;
+        else if((current_time()-led1_time) > led1){
+        IO0PIN=IO0PIN^LED1_BIT;
+        led1_time+=led1;
+        }
+
+        if(led2 == 0) IO0SET=LED2_BIT;
+        else if(led2 == 1) IO0CLR=LED2_BIT;
+        else if((current_time()-led2_time) > led2){
+        IO0PIN=IO0PIN^LED2_BIT;
+        led2_time+=led2;
+        }
+    }
+    #endif
+
+}
+
 int main(int argc, char *argv[]) { 
 
     //opening file descriptor
@@ -337,7 +369,9 @@ int main(int argc, char *argv[]) {
     uldy_init(ul_dyac,ul_fd,ul_save_sn,ul_save_adr,(char*)ul_idstr,sn);
 
     loop();
+//     blink();
 
     ul_close(ul_fd);
+
     return EXIT_SUCCESS;
 }