[vz-dev] 1wirevz Sensorentausch

W3ll Schmidt w3llschmidt at gmail.com
Wed Sep 18 23:32:58 CEST 2013


Am 18. September 2013 21:56 schrieb Andreas Brus <andreas at brus.name>:

>
> Ich verstehe diese Schleifen bei der Fehlerbehandlung nicht wirklich, aber
> ich vermute, daß da irgendwas durcheinander gerät.
>
> Gruß
> Andreas
>

Hm, die Schleife macht eigentlich nichts besonderes ...

double ds1820read(char *sensorid) {

	FILE *fp;	

	sprintf(fn, "/sys/bus/w1/devices/%s/w1_slave", sensorid );

	if  ( (fp = fopen ( fn, "r"  )) == NULL ) {
	return(-1);
	}

	else

	{

*		fgets( crc_buffer, sizeof(crc_buffer), fp );*
*		if ( !strstr ( crc_buffer, crc_OK ) ) *
*	 	{*
*
*
*			syslog(LOG_INFO, "CRC check failed, SensorID: %s", sensorid);*
*
*
*		fclose ( fp );*
*		return(-1);*
		}

		else

		{

		fgets( temp_buffer, sizeof(temp_buffer), fp );
		fgets( temp_buffer, sizeof(temp_buffer), fp );

			char *t;
			t = strndup ( temp_buffer +29, 5 ) ;
			temp = atof(t)/1000;

		fclose ( fp );
		http_post(temp, vzuuid[i][count]);

		}

	}

}


Wenn die Schleife kein CRC_OK lesen kann, haut sie einen Syslogeintrag
raus, schliesst den FP und macht return(-1).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20130918/ddf11efd/attachment-0001.html>


More information about the volkszaehler-dev mailing list