Commit graph

86 commits

Author SHA1 Message Date
Nightt
cea2f89f74 industry/scpi: add unit parser config options
Expose scpi-parser unit support through explicit Kconfig options instead of raw CFLAGS.

Map each option to the corresponding upstream USE_UNITS_* compile-time define, preserving the existing default unit set while allowing users to enable groups such as USE_UNITS_TIME.

Signed-off-by: Nightt <87569709+nightt5879@users.noreply.github.com>
2026-06-25 23:48:43 +08:00
Xiang Xiao
f9f59bd0f8 !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats
Now that time_t is unconditionally 64-bit (signed int64_t) and the
struct timespec fields tv_sec / tv_nsec are wide enough on their own,
the explicit (uint64_t)/(int64_t)/(int) casts that used to guard the
multiplications and subtractions in *_us / *_ms / *_ns helpers are no
longer needed.  Drop them to keep the timekeeping math readable.

In the same spirit, this commit also normalises the printf-style format
specifiers and casts used to print tv_sec / tv_nsec / tv_usec values.
The prior code was a mix of "%d"/"%u"/"%ld"/"%lu"/"%lld" with matching
(int)/(unsigned long)/(long long) casts; some formats truncated time_t
on 32-bit hosts, others mismatched signedness or width.  Replace all
such cases with the portable POSIX-recommended forms:

  - tv_sec  (time_t,       signed, impl-defined width) -> %jd  + (intmax_t)
  - tv_nsec (long,         signed)                     -> %ld  (no cast)
  - tv_usec (suseconds_t / long)                       -> %ld  (no cast)

Also drop two stale `(FAR const time_t *)&ts.tv_sec` casts that are
unnecessary now that ts.tv_sec is plain time_t.

Arithmetic-cleanup files (existing scope):

  - benchmarks/cyclictest/cyclictest.c:        timediff_us()
  - benchmarks/sd_bench/sd_bench_main.c:       get_time_delta_us()
  - examples/oneshot/oneshot_main.c:           maxus computation
  - examples/watchdog/watchdog_main.c:         current_time_ms (x2)
  - industry/nxmodbus/nxmb_internal.h:         nxmb_util_clock_ms()
  - netutils/ntpclient/ntpclient.c:            timespec2ntp()
  - netutils/ptpd/ptpd.c:                      ptp_adjtime()
  - system/dd/dd_main.c:                       elapsed accounting
  - testing/drivers/drivertest/drivertest_posix_timer.c:
                                               get_timestamp()
  - testing/drivers/sd_stress/sd_stress_main.c:get_time_delta()
  - testing/sched/getprime/getprime_main.c:    elapsed accounting
  - testing/sched/pthread_mutex_perf/pthread_mutex_perf.c:
                                               timespec_avg()

Printf-format-fix files (new in this revision):

  - examples/adjtime/adjtime_main.c
  - examples/charger/charger_main.c
  - examples/netpkt/netpkt_ethercat.c
  - fsutils/mkfatfs/mkfatfs.c
  - graphics/tiff/tiff_initialize.c
  - netutils/ptpd/ptpd.c
  - nshlib/nsh_timcmds.c
  - system/coredump/coredump.c
  - system/ptpd/ptpd_main.c
  - testing/drivers/drivertest/drivertest_oneshot.c
  - testing/mm/kasantest/kasantest.c
  - testing/ostest/semtimed.c
  - testing/sched/pthread_mutex_perf/pthread_mutex_perf.c
  - testing/sched/timerjitter/timerjitter.c
  - testing/testsuites/kernel/time/cases/clock_test_clock01.c
  - testing/testsuites/kernel/time/cases/clock_test_smoke.c

No behavioural change.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-05-22 13:38:25 +08:00
raiden00pl
773f69d5d9 modbus: add nxmodbus
NxModbus is a lightweight Modbus protocol stack implementation for NuttX RTOS.

This commit adds:
- nxmodbus stack
- nxmbserver - Modbus Server (Slave) example
- nxmbclient - Modbus Client (Master) tool

Supported Modbus transports:
- ASCII
- RTU over serial port
- TCP
- RAW (ADU) for custom transport implementations

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-04-20 12:45:17 -03:00
Alan Carvalho de Assis
2016c0b6ae apps/modbus: Move modbus to inside industry/
Modbus is a protocol mostly used on industries and since it is a
protocol it is not a category to be at root of apps/

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-04-20 08:42:37 +02:00
Alan Carvalho de Assis
2ee08209a0 apps/modbus: Move modbus to inside industry/
Modbus is a protocol mostly used on industries and since it is a
protocol it is not a category to be at root of apps/

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-04-20 08:42:37 +02:00
Piyush Patle
9d849adfab include/debug.h: Use <nuttx/debug.h> in apps
Replace app-side includes of <debug.h> with <nuttx/debug.h> to use the
header from the NuttX tree explicitly after the header move.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
2026-04-11 10:39:27 -03:00
raiden00pl
5d4b720596 foc/foc_feedforward.c: vdq_comp->q should use idq->d
fix typo in calculations for vdq_comp->q. It should use idq->d not idq->q.

Reported in https://github.com/apache/nuttx-apps/issues/3047

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-04-03 18:34:55 +08:00
Alin Jerpelea
cc345c785d industry: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-12-19 15:25:28 +08:00
raiden00pl
920bd8fed8 industrial/foc: add dependences to Kconfig 2024-06-06 03:21:19 +08:00
raiden00pl
e9991bc8ec foc_feedforward.c: fix compilation 2024-06-06 03:21:19 +08:00
raiden00pl
d589443980 industry/foc: fix direction alignment
CCW direction wasn't properly detected when we start alignment from near zero position
2023-11-18 08:39:40 -08:00
raiden00pl
57f98ee20e industrial/foc: add options to configure foclib logs 2023-11-05 12:15:03 +08:00
raiden00pl
4dfd474ae9 remove industry/xxx/README.md and modbus/README.md. Migrated to Documentation/applications/industry 2023-10-30 10:00:01 +08:00
raiden00pl
ce2ee9bb3f industry/foc: use b16sign() instead of custom ABS() macro
fixedmath now supports sign functions so we no longer need to use a dedicated macro
2023-10-19 19:34:04 +08:00
raiden00pl
f117860a16 industry/foc/ramp: fix acceleration in CCW direction and simplify code 2023-10-18 14:16:53 +08:00
raiden00pl
6cf6a73fc0 industry/foc: add support for PMSM feedforward compensation
reference: https://electronics.stackexchange.com/questions/386246/field-oriented-control-feed-forward-term
2023-10-17 14:24:23 +08:00
raiden00pl
53b7486528 industry/foc: reset velocity observer output foc_velocity_zero_xx() is called 2023-10-16 13:46:09 -04:00
raiden00pl
5a65f3d48f industry/foc: reset align data when align is finished
this allows the align procedure to be run multiple times
2023-10-16 13:44:37 -04:00
raiden00pl
8ee684e586 industry/foc: make direction alignment configurable
for sensorless velocity controller (ESC) we don't need to align the direction,
but we have to align the initial motor phase each time the motor start
2023-10-16 13:44:37 -04:00
raiden00pl
768d5b29f1 industry/foc: force angle observers output to zero if motor stopped
this prevents junk data from the observer when the motor is stopped
2023-10-16 13:42:57 -04:00
raiden00pl
baa23afbd3 industry/foc/openloop: don't use direction argument, instead use signed velocity
otherwise, when dir=-1 and the velocity value is negative, the output from
velocity is in the opposite direction than the intended one
2023-10-16 13:11:49 -04:00
raiden00pl
a36318c536 industry/foc/fixed16/foc_ang_onfo.c: use b16abs operation
we get rid of custom ABS() macro
2023-10-16 22:36:34 +08:00
raiden00pl
6a814dd41f industry/foc/nfo: use float numbers in all calculations
we want to use FPU instructions in calculations not __aeabi
2023-10-15 22:45:13 +08:00
raiden00pl
a56f0922c5 industrial/foc: add an interface that returns the modulation state
Useful for debugging and demonstrating FOC operation
2023-10-05 20:42:46 +08:00
simbit18
85988dc77f Fix nuttx coding style
Remove TABs
2023-08-01 23:10:32 -07:00
raiden00pl
ed370ec674 cmake: port nxscope and foc and add missing directories 2023-07-14 22:04:35 +08:00
chao an
4d79a5cbaf add initial cmake build system
Co-authored-by: Daniel Agar <daniel@agar.ca>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-08 13:52:02 +08:00
Gustavo Henrique Nihei
efb4e0bc91 Add another batch of missing headers throughout the repository
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2023-03-28 14:54:16 -03:00
Petro Karashchenko
75b4720a6e industry/scpi: fix compilation of SCPI library
Expose SCPI library API to application

Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-03-27 09:15:48 +02:00
Xiang Xiao
a29d9ea9da fsutils/examples: Include unistd.h explicitly
to get the prototypes or macros are defined in it

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-02-05 08:46:59 +02:00
Neo Xu
185ebab90f apps/industry: add scpi parser lib
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2022-12-22 00:59:10 +08:00
raiden00pl
8609c92081 industry/foc/fixed16/foc_ident.c: add b16_t overflow protection 2022-11-04 02:08:08 +08:00
raiden00pl
4beb637925 industry/foc/fixed16/foc_ident.c: fix div operation 2022-11-04 02:08:08 +08:00
raiden00pl
9517b46958 industry/foc/fixed16/foc_ident.c: port changes from float32 implementation 2022-11-04 02:08:08 +08:00
raiden00pl
8d61a10a74 industry/foc/foc_ident: make the Ki resistance measurement parameter configurable
The hardcoded parameter may not be suitable for various types of motors
2022-10-24 01:14:52 +08:00
Xiang Xiao
4941182cc6 Make.defs: Change "ifeq ($(XXX),y)" to "ifneq ($(XXX),)
to support the tristate option correctly and unify the usage

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-16 14:59:08 +02:00
Xiang Xiao
9291d07a87 Fix the coding style issue
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-06 12:20:32 +02:00
zouboan
d1cbbcdb41 reset state machine to support identification once more without restart app 2022-08-22 13:57:12 +08:00
zouboan
bd82e8d39f improve flux linkage identification method
improve flux linkage identification method
2022-08-22 13:57:12 +08:00
zouboan
30dbdf71ff industry/foc foc_ident: adding flux linkage identification 2022-06-01 01:06:26 +08:00
zouboan
5ae5ab7f44 industry/foc foc_ident: improving the measuring of resistance 2022-06-01 01:06:26 +08:00
raiden00pl
fbb09ff128 foclib/fixed16: add support for observers 2022-02-20 21:55:14 +08:00
raiden00pl
52beb5f717 industry/foc/float: cosmetics 2022-02-20 21:55:14 +08:00
raiden00pl
7df20da96c industry/foc: refactor and fixes for angle observers 2022-02-20 07:36:36 +08:00
raiden00pl
8422f9c3f9 industry/foc: remove choice option for angle observers 2022-02-20 07:36:36 +08:00
raiden00pl
c16f1408a6 industry/foc: update comments 2022-02-20 07:36:36 +08:00
raiden00pl
d76a7c242b industry/foc: fix compilation for smo 2022-02-20 07:36:36 +08:00
raiden00pl
d6cdc5a423 industry/foc: rename dir to sensor_dir to be clear that it relates to the direction of the sensor, no movement direction 2022-02-20 07:36:36 +08:00
zouboan
34e4da2304 industry/foc: add support for angle from sensorless observer 2022-02-19 15:37:35 +01:00
raiden00pl
5ef9d3630b industry/foc/float: add velocity observers support 2022-02-16 23:49:12 +08:00