<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=Solarbox_Liquid_V.006</id>
	<title>Solarbox Liquid V.006 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=Solarbox_Liquid_V.006"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;action=history"/>
	<updated>2026-05-15T04:39:59Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Open Source Ecology - Germany</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11154&amp;oldid=prev</id>
		<title>Case am 15. September 2014 um 19:59 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11154&amp;oldid=prev"/>
		<updated>2014-09-15T19:59:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Abfassung vorher&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 15. September 2014, 19:59 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is still under development and acts as a kind of working horse, so please ignore all the redundant comments &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key oseg_04-mw_:diff::1.12:old-11153:rev-11154 --&gt;
&lt;/table&gt;</summary>
		<author><name>Case</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11153&amp;oldid=prev</id>
		<title>Case am 15. September 2014 um 19:58 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11153&amp;oldid=prev"/>
		<updated>2014-09-15T19:58:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Abfassung vorher&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 15. September 2014, 19:58 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  * Liquid V.006&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  * Liquid V.006&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l351&quot; &gt;Zeile 351:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 352:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key oseg_04-mw_:diff::1.12:old-11152:rev-11153 --&gt;
&lt;/table&gt;</summary>
		<author><name>Case</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11152&amp;oldid=prev</id>
		<title>Case: Created page with &quot;/*  * Liquid V.006  *   * Graphical visualization of sampling- and logging-data  * from an energy-management-system lika a SolarBox Charger  *   *   * This project is part of ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=Solarbox_Liquid_V.006&amp;diff=11152&amp;oldid=prev"/>
		<updated>2014-09-15T19:58:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;/*  * Liquid V.006  *   * Graphical visualization of sampling- and logging-data  * from an energy-management-system lika a SolarBox Charger  *   *   * This project is part of ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
 * Liquid V.006&lt;br /&gt;
 * &lt;br /&gt;
 * Graphical visualization of sampling- and logging-data&lt;br /&gt;
 * from an energy-management-system lika a SolarBox Charger&lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * This project is part of the OpenSourceEcology Germany&lt;br /&gt;
 * Project SolarBox.  See http://opensourceecology.de&lt;br /&gt;
 * &lt;br /&gt;
 * 15.09.2014 by OS/case&lt;br /&gt;
 *&lt;br /&gt;
 * This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 * it under the terms of the GNU General Public License as published by&lt;br /&gt;
 * the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 * (at your option) any later version.&lt;br /&gt;
 * &lt;br /&gt;
 * This program is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 * GNU General Public License for more details.&lt;br /&gt;
 * &lt;br /&gt;
 * You should have received a copy of the GNU General Public License&lt;br /&gt;
 * along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;br /&gt;
 */ &lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
 &lt;br /&gt;
Serial port;  // Create object from Serial class&lt;br /&gt;
int val;      // Data received from the serial port&lt;br /&gt;
// int[] values;&lt;br /&gt;
int[] a_values;&lt;br /&gt;
int[] v_values;&lt;br /&gt;
float zoom;&lt;br /&gt;
&lt;br /&gt;
float bat_volt = 0.0;  // volt&lt;br /&gt;
float show_bat_volt = 0.0;&lt;br /&gt;
int bat_mvolt = 0;  // millivolt&lt;br /&gt;
&lt;br /&gt;
float bat_amp = 0.0;   // ampere&lt;br /&gt;
float show_bat_amp = 0.0;&lt;br /&gt;
int bat_mamp = 0;   // milliampere&lt;br /&gt;
&lt;br /&gt;
float solar_volt = 0.0;  // volt&lt;br /&gt;
float show_solar_volt = 0.0;&lt;br /&gt;
int solar_mvolt = 0;  // millivolt&lt;br /&gt;
&lt;br /&gt;
int chargingflag = 0;&lt;br /&gt;
int duty = 0;&lt;br /&gt;
long timestamp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int yrange = 10000;    // Display Range from +20V until -20V&lt;br /&gt;
&lt;br /&gt;
float yfaktor =   (height*0.5) / (yrange * 1000);  // yfaktor tells how many millivolt is representet by one pixel &lt;br /&gt;
 &lt;br /&gt;
// int winx = 1024;&lt;br /&gt;
// int winy = 480;&lt;br /&gt;
&lt;br /&gt;
int winx = 1280;&lt;br /&gt;
int winy = 1024;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int offset = winy / 2; &lt;br /&gt;
int vert_adjust = winy / 2;&lt;br /&gt;
int showflag = 0;&lt;br /&gt;
 &lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  // size(1024, 480);&lt;br /&gt;
  size(winx, winy);&lt;br /&gt;
&lt;br /&gt;
  // print all available serial ports&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  &lt;br /&gt;
  // Open the port that the board is connected to and use the same speed (9600 bps)&lt;br /&gt;
  // port = new Serial(this, Serial.list()[4], 9600);&lt;br /&gt;
  port = new Serial(this, Serial.list()[Serial.list().length-1], 9600); // Für PC-User&lt;br /&gt;
  port.bufferUntil('\n');&lt;br /&gt;
 &lt;br /&gt;
  a_values = new int[width];&lt;br /&gt;
  v_values = new int[width];&lt;br /&gt;
  zoom = 1.0f;&lt;br /&gt;
  smooth();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
int getY(int val) {&lt;br /&gt;
  int newval = 0;&lt;br /&gt;
  &lt;br /&gt;
  // newval = (int)(height - val / 1023.0f * (height - 1));&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  newval = (int)((val * offset)/yrange) + offset;&lt;br /&gt;
  // println(&amp;quot;getY: &amp;quot; + val + &amp;quot;, &amp;quot; + newval);&lt;br /&gt;
  &lt;br /&gt;
  // newval = 240 - newval + 240;&lt;br /&gt;
  // newval = 240 - newval + vert_adjust;&lt;br /&gt;
  newval = offset - newval + vert_adjust;&lt;br /&gt;
  return newval;&lt;br /&gt;
  &lt;br /&gt;
  // return (int)(height - val / 1023.0f * (height - 1));&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
int getValue() {&lt;br /&gt;
  // int value = -1;&lt;br /&gt;
  int value = 30000;&lt;br /&gt;
  /*&lt;br /&gt;
  while (port.available() &amp;gt;= 3) {&lt;br /&gt;
    if (port.read() == 0xff) {&lt;br /&gt;
      value = (port.read() &amp;lt;&amp;lt; 8) | (port.read());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  */&lt;br /&gt;
  &lt;br /&gt;
  // Beispiel: 0.00,-8.80&lt;br /&gt;
&lt;br /&gt;
  bat_volt = 0.0;&lt;br /&gt;
  bat_amp = 0.0;&lt;br /&gt;
&lt;br /&gt;
  String dataString = port.readStringUntil('\n');&lt;br /&gt;
  // value = port.read();&lt;br /&gt;
  &lt;br /&gt;
  if (dataString != null) &lt;br /&gt;
  {&lt;br /&gt;
    float[] data = float(split(dataString, &amp;quot;,&amp;quot;));&lt;br /&gt;
    &lt;br /&gt;
    bat_volt = data[0];&lt;br /&gt;
    bat_amp  = data[1];&lt;br /&gt;
    solar_volt = data[2];&lt;br /&gt;
    chargingflag = (int)data[3];&lt;br /&gt;
    duty = (int)data[4];&lt;br /&gt;
    // timestamp = data[5];&lt;br /&gt;
    &lt;br /&gt;
    // print(bat_volt);&lt;br /&gt;
    // print(&amp;quot;, &amp;quot;);&lt;br /&gt;
    // println(bat_amp);&lt;br /&gt;
&lt;br /&gt;
    show_bat_amp = bat_amp;&lt;br /&gt;
    show_bat_volt = bat_volt;&lt;br /&gt;
    show_solar_volt = solar_volt;&lt;br /&gt;
   &lt;br /&gt;
    bat_amp = bat_amp * 1000;&lt;br /&gt;
    bat_volt = bat_volt * 1000/10;&lt;br /&gt;
    solar_volt = solar_volt * 1000;&lt;br /&gt;
  &lt;br /&gt;
    bat_mamp = (int)bat_amp;&lt;br /&gt;
    bat_mvolt = (int)bat_volt;&lt;br /&gt;
    solar_mvolt = (int)solar_volt;&lt;br /&gt;
    // if(bat_mamp != 0) println(&amp;quot;GetValue: &amp;quot; + bat_mvolt + &amp;quot;, &amp;quot; + bat_mamp);&lt;br /&gt;
 &lt;br /&gt;
    value = bat_mamp;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
  else showflag = 0;&lt;br /&gt;
  &lt;br /&gt;
  // if(value != 0)  println(value);&lt;br /&gt;
  return value;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
void pushValue(int value) {&lt;br /&gt;
  for (int i=0; i&amp;lt;width-1; i++)&lt;br /&gt;
    values[i] = values[i+1];&lt;br /&gt;
  values[width-1] = value;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void pushValue(int a_value, int v_value) &lt;br /&gt;
{&lt;br /&gt;
  &lt;br /&gt;
  for (int i=0; i&amp;lt;width-1; i++)&lt;br /&gt;
    a_values[i] = a_values[i+1];&lt;br /&gt;
  a_values[width-1] = a_value;&lt;br /&gt;
&lt;br /&gt;
  for (int i=0; i&amp;lt;width-1; i++)&lt;br /&gt;
    v_values[i] = v_values[i+1];&lt;br /&gt;
  v_values[width-1] = v_value;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
/* void drawLines() {&lt;br /&gt;
  stroke(255);&lt;br /&gt;
  &lt;br /&gt;
  int displayWidth = (int) (width / zoom);&lt;br /&gt;
  &lt;br /&gt;
  int k = values.length - displayWidth;&lt;br /&gt;
  &lt;br /&gt;
  int x0 = 0;&lt;br /&gt;
  int y0 = getY(values[k]);&lt;br /&gt;
  for (int i=1; i&amp;lt;displayWidth; i++) {&lt;br /&gt;
    k++;&lt;br /&gt;
    int x1 = (int) (i * (width-1) / (displayWidth-1));&lt;br /&gt;
    int y1 = getY(values[k]);&lt;br /&gt;
    line(x0, y0, x1, y1);&lt;br /&gt;
    x0 = x1;&lt;br /&gt;
    y0 = y1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
*/ &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
void drawLines() &lt;br /&gt;
{&lt;br /&gt;
  // stroke(255);&lt;br /&gt;
  stroke(255,204, 0); // yellow&lt;br /&gt;
  int displayWidth = (int) (width / zoom);&lt;br /&gt;
  &lt;br /&gt;
  int k = a_values.length - displayWidth;&lt;br /&gt;
  int x0 = 0;&lt;br /&gt;
  int y0 = getY(a_values[k]);&lt;br /&gt;
  int x1 = 0;&lt;br /&gt;
  int y1 = 0;&lt;br /&gt;
  &lt;br /&gt;
  for (int i=1; i&amp;lt;displayWidth; i++) &lt;br /&gt;
  {&lt;br /&gt;
    k++;&lt;br /&gt;
    x1 = (int) (i * (width-1) / (displayWidth-1));&lt;br /&gt;
    y1 = getY(a_values[k]);&lt;br /&gt;
    line(x0, y0, x1, y1);&lt;br /&gt;
    x0 = x1;&lt;br /&gt;
    y0 = y1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // stroke(46,139,87);&lt;br /&gt;
  stroke(0,255,204); // cyan&lt;br /&gt;
  k = v_values.length - displayWidth;&lt;br /&gt;
  x0 = 0;&lt;br /&gt;
  y0 = getY(v_values[k]);&lt;br /&gt;
  for (int i=1; i&amp;lt;displayWidth; i++) &lt;br /&gt;
  {&lt;br /&gt;
    k++;&lt;br /&gt;
    x1 = (int) (i * (width-1) / (displayWidth-1));&lt;br /&gt;
    y1 = getY(v_values[k]);&lt;br /&gt;
    line(x0, y0, x1, y1);&lt;br /&gt;
    x0 = x1;&lt;br /&gt;
    y0 = y1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
void drawGrid() {&lt;br /&gt;
  &lt;br /&gt;
  int x1 = 0;&lt;br /&gt;
  int y1 = 0;&lt;br /&gt;
  int x2 = width;&lt;br /&gt;
  int y2 = 0;&lt;br /&gt;
    &lt;br /&gt;
  // Mittellinie&lt;br /&gt;
  stroke(10, 10, 250);&lt;br /&gt;
  line(0, height/2, width, height/2);&lt;br /&gt;
  &lt;br /&gt;
  // 10er Linie&lt;br /&gt;
  stroke(0, 120, 0);&lt;br /&gt;
  y1 = getY(10 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(9 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(8 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(7 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(6 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(5 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(4 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(3 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(2 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(1 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  // y1 = getY(0);  line(x1, y1, x2, y1);&lt;br /&gt;
  &lt;br /&gt;
  y1 = getY(-10 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-9 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-8 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-7 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-6 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-5 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-4 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-3 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-2 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  y1 = getY(-1 * 1000);  line(x1, y1, x2, y1);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
        &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  switch (key) {&lt;br /&gt;
    case '+':&lt;br /&gt;
      zoom *= 2.0f;&lt;br /&gt;
      println(zoom);&lt;br /&gt;
      if ( (int) (width / zoom) &amp;lt;= 1 )&lt;br /&gt;
        zoom /= 2.0f;&lt;br /&gt;
      break;&lt;br /&gt;
    case '-':&lt;br /&gt;
      zoom /= 2.0f;&lt;br /&gt;
      if (zoom &amp;lt; 1.0f)&lt;br /&gt;
        zoom *= 2.0f;&lt;br /&gt;
      break;&lt;br /&gt;
      &lt;br /&gt;
   case 'a':&lt;br /&gt;
     yrange = yrange / 2;&lt;br /&gt;
      break;&lt;br /&gt;
            &lt;br /&gt;
   case 'b':&lt;br /&gt;
     yrange = yrange * 2;&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
   case 'k':&lt;br /&gt;
     vert_adjust = vert_adjust + 1;&lt;br /&gt;
      break;&lt;br /&gt;
            &lt;br /&gt;
   case 'l':&lt;br /&gt;
     vert_adjust = vert_adjust - 1;&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void draw()&lt;br /&gt;
{&lt;br /&gt;
  background(0);&lt;br /&gt;
  drawGrid();&lt;br /&gt;
  val = getValue();&lt;br /&gt;
  // if (val != -1) {&lt;br /&gt;
  if (val != 30000) &lt;br /&gt;
  {&lt;br /&gt;
    // pushValue(val);&lt;br /&gt;
    pushValue(bat_mamp, bat_mvolt);&lt;br /&gt;
  }&lt;br /&gt;
  drawLines();&lt;br /&gt;
  &lt;br /&gt;
  textSize(16);&lt;br /&gt;
  &lt;br /&gt;
  fill(255, 204, 0);&lt;br /&gt;
  text(show_bat_amp, 10, 20);&lt;br /&gt;
  &lt;br /&gt;
  fill(0, 255, 204);&lt;br /&gt;
  text(show_bat_volt, 10, 40);&lt;br /&gt;
  &lt;br /&gt;
  fill(0, 255, 204);&lt;br /&gt;
  text(show_solar_volt, 10, 60);&lt;br /&gt;
  &lt;br /&gt;
  fill(0, 255, 204);&lt;br /&gt;
  text(chargingflag, 10, 80);&lt;br /&gt;
  &lt;br /&gt;
  fill(0, 255, 204);&lt;br /&gt;
  text(duty, 10, 100);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Case</name></author>
	</entry>
</feed>