brewco/util.c

changeset 487
d5bc44183aa4
parent 486
5a237a99a793
child 488
bee1f70fb42b
--- a/brewco/util.c	Thu Feb 25 22:42:54 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-/*****************************************************************************
- * Copyright (C) 2015
- *   
- * Michiel Broek <mbroek at mbse dot eu>
- *
- * This file is part of the mbsePi-apps
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * mbsePi-apps is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with ThermFerm; see the file COPYING.  If not, write to the Free
- * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *****************************************************************************/
-
-#include "brewco.h"
-#include "util.h"
-#include "slcd.h"
-
-#ifdef HAVE_WIRINGPI_H
-extern int	lcdHandle;
-#endif
-extern int	slcdHandle;
-
-
-/*
- * Make directory tree, the name must end with a /
- */
-int mkdirs(char *name, mode_t mode)
-{
-    char	buf[PATH_MAX], *p, *q;
-    int		last = 0, oldmask;
-
-    memset(&buf, 0, sizeof(buf));
-    strncpy(buf, name, sizeof(buf)-1);
-    buf[sizeof(buf)-1] = '\0';
-
-    p = buf+1;
-
-    oldmask = umask(000);
-    while ((q = strchr(p, '/'))) {
-	*q = '\0';
-	mkdir(buf, mode);
-	last = errno;
-	*q = '/';
-	p = q+1;
-    }
-
-    umask(oldmask);
-											
-    if ((last == 0) || (last == EEXIST)) {
-	return TRUE;
-    } else {
-	syslog(LOG_NOTICE, "mkdirs(%s)", name);
-	return FALSE;
-    }
-}
-
-
-
-/*
- * Test if the given file exists. The second option is:
- * R_OK - test for Read rights 
- * W_OK - test for Write rights
- * X_OK - test for eXecute rights
- * F_OK - test file presence only
- */ 
-int file_exist(char *path, int mode)
-{
-    if (access(path, mode) != 0)
-	return errno;
-
-    return 0;
-}
-
-
-
-/*
- * Buffered filecopy, filetime is preserved.
- */
-int file_cp(char *from, char *to)
-{
-    char		*line;
-    FILE		*stfrom, *stto;
-    int			dummy, bread;
-    static int		error;
-    struct stat 	sb;
-    struct utimbuf 	ut;
-
-    stfrom = fopen(from, "r");
-    if (stfrom == NULL)
-	return errno;
-
-    stto = fopen(to, "w");
-    if (stto == NULL) {
-	error = errno;
-	fclose(stfrom);
-	return error;
-    }
-
-    line = malloc(16384);
-    do {
-	bread = fread(line, 1, 16384, stfrom);
-	dummy = fwrite(line, 1, bread, stto);
-	if (bread != dummy) {
-	    error = errno;
-	    fclose(stfrom);
-	    fclose(stto);
-	    unlink(to);
-	    free(line);
-	    return error;
-	}
-    } while (bread != 0);
-    free(line);
-    fclose(stfrom);
-    if (fclose(stto) != 0) {
-	error = errno;
-	unlink(to);
-	return error;
-    }
-
-    /*
-     * copy successfull, now copy file- and modification-time
-     */
-    if (stat(from, &sb) == 0) {
-	ut.actime = mktime(localtime(&sb.st_atime));
-	ut.modtime = mktime(localtime(&sb.st_mtime));
-	if (utime(to, &ut) != 0) {
-	    error = errno;
-	    unlink(to);
-	    return error;
-	}
-	chmod(to, sb.st_mode);
-    }
-
-    return 0;
-}
-
-
-#ifndef HAVE_WIRINGPI_H
-long millis(void)
-{
-    struct timespec	now;
-
-    clock_gettime(CLOCK_REALTIME , &now);
-    return ((now.tv_sec * 1000000000) + now.tv_nsec) / 1000000;
-}
-#endif
-
-
-void hlt_status(int value)
-{
-#ifdef HAVE_WIRINGPI_H
-    piLock(LOCK_LCD);
-    lcdPosition(lcdHandle, 0, 1);
-#endif
-    slcdPosition(slcdHandle, 0, 1);
-    if (value) {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 5);
-#endif
-	slcdPutchar(slcdHandle, 5);
-    } else {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 6);
-#endif
-	slcdPutchar(slcdHandle, 6);
-    }
-#ifdef HAVE_WIRINGPI_H
-    piUnlock(LOCK_LCD);
-#endif
-}
-
-
-
-void mlt_status(int value)
-{
-#ifdef HAVE_WIRINGPI_H
-    piLock(LOCK_LCD);
-    lcdPosition(lcdHandle, 18, 1);
-#endif
-    slcdPosition(slcdHandle, 18, 1);
-    if (value) {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 5);
-#endif
-	slcdPutchar(slcdHandle, 5);
-    } else {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 6);
-#endif
-	slcdPutchar(slcdHandle, 6);
-    }
-#ifdef HAVE_WIRINGPI_H
-    piUnlock(LOCK_LCD);
-#endif
-}
-
-
-
-void pump_status(int value)
-{
-#ifdef HAVE_WIRINGPI_H
-    piLock(LOCK_LCD);
-    lcdPosition(lcdHandle, 19, 1);
-#endif
-    slcdPosition(slcdHandle, 19, 1);
-    if (value) {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 3);
-#endif
-	slcdPutchar(slcdHandle, 3);
-    } else {
-#ifdef HAVE_WIRINGPI_H
-	lcdPutchar(lcdHandle, 4);
-#endif
-	slcdPutchar(slcdHandle, 4);
-    }
-#ifdef HAVE_WIRINGPI_H
-    piUnlock(LOCK_LCD);
-#endif
-}
-
-
-
-/* From ArdBir */
-float Arrotonda025(float Num){
-    // Appoggio la parte intera
-    int Appoggio= (int)Num;
-
-    // Arrotondo il valore con peso 0.25
-    return Appoggio+(int)((Num-Appoggio)*1000/225)*0.25;
-}
-
-float ConvertiCtoF(float Num){        
-    Num = Num/16;              // Recupero il valore
-    Num = (Num*1.8)+32;          // Converto in °F
-    Num = Arrotonda025(Num);
-    return Num*16;              // Preparo il valore per la registrazione
-}
-float ConvertiFtoC(float Num){
-    Num = Num/16;              // Recupero il valore
-    Num = (Num-32)/1.8;            // Converto in °C
-    Num = Arrotonda025(Num);
-    return Num*16;              // Preparo il valore per la registrazione
-}
-

mercurial