Commit b2f548fe authored by Armando Visconti's avatar Armando Visconti
Browse files

sensor/stmemsc: Align stmemsc i/f to v2.6



Align stmemsc HAL i/f to v2.6

Signed-off-by: default avatarArmando Visconti <armando.visconti@st.com>
parent b77157f6
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -12,8 +12,10 @@ set(stmems_pids
  ais328dq
  ais3624dq
  asm330lhb
  asm330lhbg1
  asm330lhh
  asm330lhhx
  asm330lhhxg1
  h3lis100dl
  h3lis331dl
  hts221
@@ -28,14 +30,13 @@ set(stmems_pids
  ilps22qs
  ilps28qsw
  ism303dac
  ism330bx
  ism330dhcx
  ism330dlc
  ism330is
  l20g20is
  l3gd20h
  lis25ba
  lis2de12
  lis2dh
  lis2dh12
  lis2ds12
  lis2dtw12
@@ -49,7 +50,6 @@ set(stmems_pids
  lis3de
  lis3dh
  lis3dhh
  lis3dsh
  lis3mdl
  lps22ch
  lps22df
@@ -59,12 +59,9 @@ set(stmems_pids
  lps27hhtw
  lps27hhw
  lps28dfw
  lps33hw
  lps33k
  lps33w
  lsm303agr
  lsm303ah
  lsm6ds3
  lsm6ds3tr-c
  lsm6dsl
  lsm6dsm
@@ -75,10 +72,13 @@ set(stmems_pids
  lsm6dsox
  lsm6dsr
  lsm6dsrx
  lsm6dsv16b
  lsm6dsv16bx
  lsm6dsv16x
  lsm6dsv32x
  lsm6dsv
  lsm9ds1
  st1vafe6ax
  sths34pf80
  stts22h
  stts751
+78 −78
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ Origin:
   https://www.st.com/en/embedded-software/c-driver-mems.html

Status:
   version v2.3
   version v2.6

Purpose:
   ST Microelectronics standard C platform-independent drivers for MEMS
@@ -49,83 +49,83 @@ Description:

   Driver versions in this package:

     - a3g4250d_STdC         v1.1.0
     - ais25ba_STdC          v1.1.0
     - ais2dw12_STdC         v1.1.0
     - ais2ih_STdC           v1.1.0
     - ais328dq_STdC         v1.1.0
     - ais3624dq_STdC        v1.1.0
     - asm330lhb_STdC        v1.0.0
     - asm330lhh_STdC        v2.1.0
     - asm330lhhx_STdC       v1.1.1
     - h3lis100dl_STdC       v1.1.0
     - h3lis331dl_STdC       v1.1.0
     - hts221_STdC           v1.1.0
     - i3g4250d_STdC         v1.1.0
     - iis2dh_STdC           v1.1.0
     - iis2dlpc_STdC         v1.1.0
     - iis2iclx_STdC         v1.1.0
     - iis2mdc_STdC          v1.1.0
     - iis328dq_STdC         v1.1.0
     - iis3dhhc_STdC         v1.1.0
     - iis3dwb_STdC          v1.1.1
     - ilps22qs_STdC         v2.1.1
     - ilps28qsw_STdC        v1.0.1
     - ism303dac_STdC        v1.1.0
     - ism330dhcx_STdC       v1.1.0
     - ism330dlc_STdC        v1.1.0
     - ism330is_STdC         v2.1.0
     - l20g20is_STdC         v1.1.0
     - l3gd20h_STdC          v1.1.0
     - lis25ba_STdC          v1.1.0
     - lis2de12_STdC         v1.1.0
     - lis2dh12_STdC         v1.1.0
     - lis2dh_STdC           v1.1.0
     - lis2ds12_STdC         v1.1.0
     - lis2dtw12_STdC        v1.1.0
     - lis2du12_STdC         v1.1.3
     - lis2dux12_STdC        v1.1.4
     - lis2duxs12_STdC       v1.1.5
     - lis2dw12_STdC         v1.1.0
     - lis2hh12_STdC         v1.1.0
     - lis2mdl_STdC          v1.1.0
     - lis331dlh_STdC        v1.1.0
     - lis3de_STdC           v1.1.0
     - lis3dh_STdC           v1.1.0
     - lis3dhh_STdC          v1.1.0
     - lis3dsh_STdC          v1.1.0
     - lis3mdl_STdC          v1.1.0
     - lps22ch_STdC          v1.1.0
     - lps22df_STdC          v1.1.0
     - lps22hb_STdC          v1.1.0
     - lps22hh_STdC          v1.1.0
     - lps25hb_STdC          v1.1.0
     - lps27hhtw_STdC        v1.1.0
     - lps27hhw_STdC         v1.1.0
     - lps28dfw_STdC         v1.1.0
     - lps33hw_STdC          v1.1.0
     - lps33k_STdC           v1.1.0
     - lps33w_STdC           v1.1.0
     - lsm303agr_STdC        v1.1.0
     - lsm303ah_STdC         v1.1.0
     - lsm6ds3_STdC          v1.1.1
     - lsm6ds3tr-c_STdC      v1.1.0
     - lsm6dsl_STdC          v1.1.0
     - lsm6dsm_STdC          v1.1.0
     - lsm6dso16is_STdC      v2.1.1
     - lsm6dso32_STdC        v1.1.0
     - lsm6dso32x_STdC       v1.1.0
     - lsm6dso_STdC          v2.1.0
     - lsm6dsox_STdC         v2.0.1
     - lsm6dsr_STdC          v1.1.0
     - lsm6dsrx_STdC         v1.1.0
     - lsm6dsv16bx_STdC      v2.1.2
     - lsm6dsv16x_STdC       v2.2.1
     - lsm6dsv_STdC          v1.2.1
     - lsm9ds1_STdC          v1.1.0
     - sths34pf80_STdC       v1.0.0
     - stts22h_STdC          v1.1.0
     - stts751_STdC          v1.1.0
     - a3g4250d_STdC        v2.0.1
     - ais25ba_STdC         v2.0.1
     - ais2dw12_STdC        v2.0.1
     - ais2ih_STdC          v2.0.1
     - ais328dq_STdC        v2.0.1
     - ais3624dq_STdC       v2.0.1
     - asm330lhb_STdC       v2.0.1
     - asm330lhbg1_STdC     v1.0.0
     - asm330lhh_STdC       v3.1.0
     - asm330lhhx_STdC      v2.0.0
     - asm330lhhxg1_STdC    v2.0.1
     - h3lis100dl_STdC      v2.0.1
     - h3lis331dl_STdC      v2.0.1
     - hts221_STdC          v2.0.1
     - i3g4250d_STdC        v2.0.1
     - iis2dh_STdC          v2.0.1
     - iis2dlpc_STdC        v2.0.1
     - iis2iclx_STdC        v2.0.1
     - iis2mdc_STdC         v2.0.2
     - iis328dq_STdC        v2.0.1
     - iis3dhhc_STdC        v2.0.1
     - iis3dwb_STdC         v2.0.1
     - ilps22qs_STdC        v3.1.0
     - ilps28qsw_STdC       v2.1.0
     - ism303dac_STdC       v2.0.1
     - ism330bx_STdC        v3.0.0
     - ism330dhcx_STdC      v2.0.2
     - ism330dlc_STdC       v2.0.1
     - ism330is_STdC        v3.0.1
     - l3gd20h_STdC         v2.0.1
     - lis25ba_STdC         v2.0.1
     - lis2de12_STdC        v2.0.1
     - lis2dh12_STdC        v2.0.1
     - lis2ds12_STdC        v2.0.1
     - lis2dtw12_STdC       v2.0.1
     - lis2du12_STdC        v2.0.1
     - lis2dux12_STdC       v2.2.0
     - lis2duxs12_STdC      v2.2.0
     - lis2dw12_STdC        v2.0.1
     - lis2hh12_STdC        v2.0.1
     - lis2mdl_STdC         v2.0.1
     - lis331dlh_STdC       v2.0.1
     - lis3de_STdC          v2.0.1
     - lis3dh_STdC          v2.0.1
     - lis3dhh_STdC         v2.0.1
     - lis3mdl_STdC         v2.0.1
     - lps22ch_STdC         v2.0.1
     - lps22df_STdC         v2.1.0
     - lps22hb_STdC         v2.0.1
     - lps22hh_STdC         v3.0.1
     - lps25hb_STdC         v2.0.1
     - lps27hhtw_STdC       v2.0.1
     - lps27hhw_STdC        v2.0.1
     - lps28dfw_STdC        v2.1.0
     - lps33k_STdC          v2.0.1
     - lsm303agr_STdC       v2.0.1
     - lsm303ah_STdC        v2.0.1
     - lsm6ds3tr-c_STdC     v2.0.1
     - lsm6dsl_STdC         v2.0.1
     - lsm6dsm_STdC         v2.0.1
     - lsm6dso16is_STdC     v3.0.1
     - lsm6dso32_STdC       v2.0.1
     - lsm6dso32x_STdC      v2.0.1
     - lsm6dso_STdC         v3.0.2
     - lsm6dsox_STdC        v3.0.1
     - lsm6dsr_STdC         v2.0.1
     - lsm6dsrx_STdC        v2.0.1
     - lsm6dsv16b_STdC      v3.0.0
     - lsm6dsv16bx_STdC     v5.0.0
     - lsm6dsv16x_STdC      v4.0.0
     - lsm6dsv32x_STdC      v2.0.0
     - lsm6dsv_STdC         v3.0.0
     - lsm9ds1_STdC         v2.0.1
     - st1vafe6ax_STdC      v2.0.0
     - sths34pf80_STdC      v3.0.1
     - stts22h_STdC         v2.1.0
     - stts751_STdC         v2.0.1

Dependencies:
    None.
+0 −101
Original line number Diff line number Diff line
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include "st_fifo.h"

uint16_t out_slot_size;

int main(int argc, char *argv[])
{
	if (argc != 3) {
		printf("Error: please specify input and output as commandline args\n");
		return -1;
	}

	FILE *fp;
	char *line = NULL;
	fp = fopen(argv[1], "r");

	size_t len = 0;
	ssize_t read;

	FILE *out_file;
	out_file = fopen(argv[2], "w");

	int lines = 0;
	size_t pos = ftell(fp);
	while(!feof(fp)) {
		char ch = fgetc(fp);
		if(ch == '\n') {
			lines++;
		}
	}
	fseek(fp, pos, SEEK_SET);

	printf("File length: %d\n", lines);

	st_fifo_conf conf;
	conf.device = ST_FIFO_LSM6DSV16X;
	conf.bdr_xl = 0;
	conf.bdr_gy = 0;
	conf.bdr_vsens = 0;

	st_fifo_init(&conf);
	st_fifo_raw_slot *raw_slot;
	st_fifo_out_slot *out_slot;

	raw_slot = malloc(lines * sizeof(st_fifo_raw_slot));
	out_slot = malloc(lines * 3 * sizeof(st_fifo_out_slot));

	int i = 0;

	printf("Running test...\n");

	while((read = getline(&line, &len, fp)) != -1) {

		int data_in[7];

		sscanf(line, "%d\t%d\t%d\t%d\t%d\t%d\t%d\r\n", &data_in[0], &data_in[1], &data_in[2], &data_in[3], &data_in[4], &data_in[5], &data_in[6]);

		for (uint8_t j = 0; j < 7; j++)
			raw_slot[i].fifo_data_out[j] = data_in[j];

		i++;
  	}

	st_fifo_decode(out_slot, raw_slot, &out_slot_size, lines);
	st_fifo_sort(out_slot, out_slot_size);

	uint16_t acc_samples = st_fifo_get_sensor_occurrence(out_slot, out_slot_size, ST_FIFO_ACCELEROMETER);
	uint16_t gyr_samples = st_fifo_get_sensor_occurrence(out_slot, out_slot_size, ST_FIFO_GYROSCOPE);

	printf("acc samples: %d\n", acc_samples);
	printf("gyr samples: %d\n", gyr_samples);

	st_fifo_out_slot *acc_slot = malloc(acc_samples * sizeof(st_fifo_out_slot));
	st_fifo_out_slot *gyr_slot = malloc(gyr_samples * sizeof(st_fifo_out_slot));

	st_fifo_extract_sensor(acc_slot, out_slot, out_slot_size, ST_FIFO_ACCELEROMETER);
	st_fifo_extract_sensor(gyr_slot, out_slot, out_slot_size, ST_FIFO_GYROSCOPE);

	for (int i = 0; i < out_slot_size; i++) {
		fprintf(out_file, "%u\t%d\t%d\t%d\t%d\r\n", out_slot[i].timestamp, out_slot[i].sensor_tag, out_slot[i].sensor_data.data[0], out_slot[i].sensor_data.data[1], out_slot[i].sensor_data.data[2]);
	}
	/*
	for (int i = 0; i < acc_samples; i++) {
		printf("ACC SLOT:\t%lld\t%d\t%d\t%d\t%d\r\n", acc_slot[i].timestamp, acc_slot[i].sensor_tag, acc_slot[i].data[0], acc_slot[i].data[1], acc_slot[i].data[2]);
	}

	for (int i = 0; i < gyr_samples; i++) {
		printf("GYR SLOT:\t%lld\t%d\t%d\t%d\t%d\r\n", gyr_slot[i].timestamp, gyr_slot[i].sensor_tag, gyr_slot[i].data[0], gyr_slot[i].data[1], gyr_slot[i].data[2]);
	}
	*/

	printf("Test finished: see %s file\n", argv[2]);

  	fclose(fp);
  	fclose(out_file);

  	return 0;
}
+0 −11
Original line number Diff line number Diff line
CC = gcc
SRC = main.c st_fifo.c

CFLAGS = -Wall -Wextra -Werror -std=gnu99 

default:
	$(CC) $(CFLAGS) $(SRC) -o st_fifo.run

clean:
	rm -fr *.o
	rm -fr st_fifo.run
+0 −937

File deleted.

Preview size limit exceeded, changes collapsed.

Loading