… | |
… | |
273 | $value = (1 / 100000) * unpack "N", substr $data, 0, 4, ""; |
273 | $value = (1 / 100000) * unpack "N", substr $data, 0, 4, ""; |
274 | } elsif ($stat == 20 || $stat == 21) { |
274 | } elsif ($stat == 20 || $stat == 21) { |
275 | my $len = unpack "C", substr $data, 0, 1, ""; |
275 | my $len = unpack "C", substr $data, 0, 1, ""; |
276 | $value = substr $data, 0, $len, ""; |
276 | $value = substr $data, 0, $len, ""; |
277 | } elsif ($stat == 28) { |
277 | } elsif ($stat == 28) { |
278 | my ($lo, $hi) = unpack "NN", substr $data, 0, 8, ""; |
278 | my ($hi, $lo) = unpack "NN", substr $data, 0, 8, ""; |
279 | $value = $hi * 2**32 + $lo; |
279 | $value = $hi * 2**32 + $lo; |
280 | } elsif ($stat >= 118 && $stat <= 129) { |
280 | } elsif (($stat >= 118 && $stat <= 129) || ($stat >= 140 && $stat < 190)) { |
281 | my ($level, $lo, $hi) = unpack "CNN", substr $data, 0, 9, ""; |
281 | my ($level, $lo, $hi) = unpack "CNN", substr $data, 0, 9, ""; |
282 | $value = [$level, $hi * 2**32 + $lo]; |
282 | $value = [$level, $hi * 2**32 + $lo]; |
283 | } else { |
283 | } else { |
284 | $value = unpack "n", substr $data, 0, 2, ""; |
284 | $value = unpack "s", pack "S", unpack "n", substr $data, 0, 2, ""; |
285 | } |
285 | } |
286 | |
286 | |
287 | $self->{stat}{$stat} = $value; |
287 | $self->{stat}{$stat} = $value; |
288 | } |
288 | } |
289 | |
289 | |