Geo-FIT
view release on metacpan or search on metacpan
lib/Geo/FIT.pm view on Meta::CPAN
$devdata_deffld_template = 'C C C';
$devdata_deffld_length = length(pack($deffld_template));
my @invalid = (0xFF) x ($deffld_mask_type + 1);
$invalid[FIT_SINT8] = 0x7F;
$invalid[FIT_SINT16] = 0x7FFF;
$invalid[FIT_UINT16] = 0xFFFF;
$invalid[FIT_SINT32] = 0x7FFFFFFF;
$invalid[FIT_UINT32] = 0xFFFFFFFF;
$invalid[FIT_STRING] = $invalid[FIT_UINT8Z] = $invalid[FIT_UINT16Z] = $invalid[FIT_UINT32Z] = $invalid[FIT_UINT64Z] = 0;
#$invalid[FIT_FLOAT32] = NaN;
#$invalid[FIT_FLOAT64] = NaN;
$invalid[FIT_FLOAT32] = unpack('f', pack('V', 0xFFFFFFFF));
$invalid[FIT_FLOAT64] = unpack('d', pack('V V', 0xFFFFFFFF, 0xFFFFFFFF));
my ($big_int_base32, $sint64_2c_mask, $sint64_2c_base, $sint64_2c_sign);
if (defined $uint64_invalid) {
$invalid[FIT_UINT64] = $uint64_invalid;
$invalid[FIT_SINT64] = eval '0x7FFFFFFFFFFFFFFF';
} else {
$invalid[FIT_UINT64] = Math::BigInt->new('0xFFFFFFFFFFFFFFFF');
lib/Geo/FIT.pm view on Meta::CPAN
sub fetch_data_message {
my ($self, $desc) = @_;
my $buffer = $self->buffer;
if ( $self->_buffer_needs_updating( $desc->{message_length} ) ) {
$self->fill_buffer or return undef
}
$self->endian_convert($desc->{endian_converter}, $self->buffer, $self->offset) if ref $desc->{endian_converter} eq 'ARRAY';
my $i = $self->offset;
# unpack('f'/'d', ...) unpacks to NaN
my @v = unpack($desc->{template}, substr($$buffer, $i, $desc->{message_length}));
if (ref $desc->{packfilter_index} eq 'ARRAY') {
my $piv = $desc->{packfilter_index};
my ($i, $j);
my @v_t = @v;
@v = ($v_t[0]);
for ($i = 1, $j = 3 ; $j < @$piv ; $j += 4) {
t/fitdump.txt view on Meta::CPAN
xxx111 (111-1-ENUM): 1
xxx121 (121-1-ENUM): 1
xxx144 (144-1-ENUM): 1
xxx170 (170-15-UINT8): {8, 7, 9, 13, 11, 12, 5, 6, 14, 10, 1, 4, 0, 2, 3}
xxx173 (173-1-ENUM, INVALID): 255
Local message type: 8 (71 octets, message name: user_profile, message number: 3)
friendly_name (0-16-STRING): "edge830"
wake_time (28-1-UINT32): 21645
sleep_time (29-1-UINT32): 79200
unknown35 (35-1-UINT32, INVALID): 4294967295
unknown40 (40-1-FLOAT32, INVALID): NaN
unknown42 (42-1-UINT32, INVALID): 4294967295
weight (4-1-UINT16): 86.2 kg (862)
user_running_step_length (31-1-UINT16, INVALID): 65535
user_walking_step_length (32-1-UINT16, INVALID): 65535
unknown33 (33-1-UINT16, INVALID): 65535
unknown34 (34-1-UINT16, INVALID): 65535
unknown38 (38-1-UINT16, INVALID): 65535
gender (1-1-ENUM): male (1)
age (2-1-UINT8): 49 years (49)
height (3-1-UINT8): 1.78 m (178)
( run in 0.241 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )