Code: Select all
# Reads data from a Current Cost device via serial port.
use strict;
use Device::SerialPort qw( :PARAM :STAT 0.07 );
my $PORT = "/dev/ttyS0";
my $ob = Device::SerialPort->new($PORT);
$ob->baudrate(2400);
$ob->write_settings;
open(SERIAL, "+>$PORT");
while (my $line = <SERIAL>) {
if ($line =~ m!<ch1><watts>0*(\d+)</watts></ch1>.*<tmpr> *([\-\d.]+)</tmpr>!) {
my $watts = $1;
my $temp = $2;
print "$watts, $temp\n";
}
}
But I prefer Dos code, anyone are able to only if code line?
This is my XML code
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:00</time><hist><dsw>01591</dsw><type>1</type><units>kwhr</units><data><sensor>0</sensor><d082>2.929</d082><d081>2.945</d081><d080>2.960</d080><d079>2.976</d079></data><data><sensor>1</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>2</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>3</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>4</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>5</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>6</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>7</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>8</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data><data><sensor>9</sensor><d082>0.000</d082><d081>0.000</d081><d080>0.000</d080><d079>0.000</d079></data></hist></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:02</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00221</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:08</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00228</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:10</time><hist><dsw>01591</dsw><type>1</type><units>kwhr</units><data><sensor>0</sensor><d078>2.953</d078><d077>3.015</d077><d076>2.953</d076><d075>2.992</d075></data><data><sensor>1</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>2</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>3</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>4</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>5</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>6</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>7</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>8</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data><data><sensor>9</sensor><d078>0.000</d078><d077>0.000</d077><d076>0.000</d076><d075>0.000</d075></data></hist></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:14</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00232</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:20</time><hist><dsw>01591</dsw><type>1</type><units>kwhr</units><data><sensor>0</sensor><d074>2.960</d074><d073>3.140</d073><d072>3.695</d072><d071>9.242</d071></data><data><sensor>1</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>2</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>3</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>4</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>5</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>6</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>7</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>8</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data><data><sensor>9</sensor><d074>0.000</d074><d073>0.000</d073><d072>0.000</d072><d071>0.000</d071></data></hist></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:20</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00225</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:26</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00246</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:30</time><hist><dsw>01591</dsw><type>1</type><units>kwhr</units><data><sensor>0</sensor><d070>9.507</d070><d069>7.359</d069><d068>9.039</d068><d067>8.320</d067></data><data><sensor>1</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>2</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>3</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>4</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>5</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>6</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>7</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>8</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data><data><sensor>9</sensor><d070>0.000</d070><d069>0.000</d069><d068>0.000</d068><d067>0.000</d067></data></hist></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:32</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00228</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:38</time><tmpr>23.4</tmpr><sensor>0</sensor><id>00077</id><type>1</type><ch1><watts>00280</watts></ch1></msg>
<msg><src>CC128-v0.11</src><dsb>01591</dsb><time>11:17:40</time><hist><dsw>01591</dsw><type>1</type><units>kwhr</units><data><sensor>0</sensor><d066>9.039</d066><d065>6.882</d065><d064>3.367</d064><d063>3.453</d063></data><data><sensor>1</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>2</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>3</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>4</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>5</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>6</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>7</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>8</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data><data><sensor>9</sensor><d066>0.000</d066><d065>0.000</d065><d064>0.000</d064><d063>0.000</d063></data></hist></msg>
Thank you in advance and best regards