Compare commits
112 Commits
Subsurface
...
v4.6.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca04147126 | ||
|
|
71cf0a5c69 | ||
|
|
3f74840f4c | ||
|
|
2e650b68ae | ||
|
|
6fccf5923f | ||
|
|
a6421b2f7b | ||
|
|
19b560d9b2 | ||
|
|
534dd2f34b | ||
|
|
4ec7283841 | ||
|
|
11fec04865 | ||
|
|
af84bd10fd | ||
|
|
a568c756a1 | ||
|
|
3ea2795bf1 | ||
|
|
89111ebb2a | ||
|
|
a6538ae7da | ||
|
|
f7d2086675 | ||
|
|
4c5b51f851 | ||
|
|
20d268acdb | ||
|
|
94e7a77d01 | ||
|
|
7e086f697d | ||
|
|
f9db4ca97c | ||
|
|
ed8b8f1221 | ||
|
|
6fa9f1566f | ||
|
|
d11d30999b | ||
|
|
cba786df2f | ||
|
|
4527c77a6b | ||
|
|
406dbf3dae | ||
|
|
8fb4018db3 | ||
|
|
8eb1c1232e | ||
|
|
7fe87f36b5 | ||
|
|
4599405078 | ||
|
|
69d26e00b0 | ||
|
|
5d4e1f97db | ||
|
|
3547c72111 | ||
|
|
1b5ccf5983 | ||
|
|
79e2e3b0b5 | ||
|
|
2e26ae4708 | ||
|
|
f38e8fe9ee | ||
|
|
0aeae321dc | ||
|
|
de7ed23bec | ||
|
|
341b7c2dad | ||
|
|
26b027cad8 | ||
|
|
5361bc06bd | ||
|
|
87facc940b | ||
|
|
bdc1c1349e | ||
|
|
f67bdcd080 | ||
|
|
2015546952 | ||
|
|
480e54ace7 | ||
|
|
ecebda3b19 | ||
|
|
6c6752d87e | ||
|
|
8356e22e61 | ||
|
|
515dc17914 | ||
|
|
cb0584adc1 | ||
|
|
f37b4b06db | ||
|
|
aa2f670224 | ||
|
|
af30fbb3f8 | ||
|
|
b13d8da426 | ||
|
|
7f6348b066 | ||
|
|
95d69ea30d | ||
|
|
cc12560b29 | ||
|
|
784844d8dd | ||
|
|
2fc31b72e7 | ||
|
|
2e0db552ad | ||
|
|
6bb60bba31 | ||
|
|
28f8cf6e19 | ||
|
|
55a44a73bb | ||
|
|
7c33c633fb | ||
|
|
e227a4c5a7 | ||
|
|
8bb373e514 | ||
|
|
290f2781ea | ||
|
|
4f321aef40 | ||
|
|
92a1919cf5 | ||
|
|
2106cb2dab | ||
|
|
854f58fa32 | ||
|
|
058538e628 | ||
|
|
138fd856bd | ||
|
|
1ccf937aa3 | ||
|
|
da0073c971 | ||
|
|
8932b2a936 | ||
|
|
9c7d1102d4 | ||
|
|
ad4bcffa23 | ||
|
|
f103553df1 | ||
|
|
a6274a3a55 | ||
|
|
adfff2d4a7 | ||
|
|
f0e695b089 | ||
|
|
fe2448e34f | ||
|
|
7fd201a400 | ||
|
|
c39dda89bc | ||
|
|
0c8886ce70 | ||
|
|
53ccc4f43b | ||
|
|
8c3e44aa0c | ||
|
|
5dbaa7a053 | ||
|
|
69bd993233 | ||
|
|
a50a1e0688 | ||
|
|
b9e3f40d59 | ||
|
|
f184b45e09 | ||
|
|
0ff1dd15f5 | ||
|
|
fb15ef18f6 | ||
|
|
3a17156be6 | ||
|
|
1f24f67565 | ||
|
|
5ecc65799c | ||
|
|
ddfdb6c306 | ||
|
|
b85f2333be | ||
|
|
06426af656 | ||
|
|
f459155b54 | ||
|
|
ebe6704747 | ||
|
|
5f76249923 | ||
|
|
0ddec2b50f | ||
|
|
8f4038d4cd | ||
|
|
d90417da38 | ||
|
|
f902f5882c | ||
|
|
eac8e98ee7 |
173
.github/workflows/build.yml
vendored
173
.github/workflows/build.yml
vendored
@ -1,173 +0,0 @@
|
||||
name: Build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
|
||||
linux:
|
||||
|
||||
name: Linux
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler: [gcc, clang]
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install libbluetooth-dev libusb-1.0-0-dev
|
||||
- run: autoreconf --install --force
|
||||
- run: ./configure --prefix=/usr
|
||||
- run: make
|
||||
- run: make distcheck
|
||||
- name: Package artifacts
|
||||
run: |
|
||||
make install DESTDIR=$PWD/artifacts
|
||||
tar -czf ${{ github.job }}-${{ matrix.compiler }}.tar.gz -C artifacts usr
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ github.job }}-${{ matrix.compiler }}
|
||||
path: ${{ github.job }}-${{ matrix.compiler }}.tar.gz
|
||||
|
||||
mac:
|
||||
|
||||
name: Mac
|
||||
|
||||
runs-on: macos-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler: [gcc, clang]
|
||||
|
||||
env:
|
||||
CC: ${{ matrix.compiler }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: brew install autoconf automake libtool hidapi libusb
|
||||
- run: autoreconf --install --force
|
||||
- run: ./configure --prefix=/usr
|
||||
- run: make
|
||||
- run: make distcheck
|
||||
- name: Package artifacts
|
||||
run: |
|
||||
make install DESTDIR=$PWD/artifacts
|
||||
tar -czf ${{ github.job }}-${{ matrix.compiler }}.tar.gz -C artifacts usr
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ github.job }}-${{ matrix.compiler }}
|
||||
path: ${{ github.job }}-${{ matrix.compiler }}.tar.gz
|
||||
|
||||
windows:
|
||||
|
||||
name: Windows
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [i686, x86_64]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install gcc-mingw-w64 binutils-mingw-w64 mingw-w64-tools
|
||||
- name: Install libusb
|
||||
env:
|
||||
LIBUSB_VERSION: 1.0.26
|
||||
run: |
|
||||
wget -c https://github.com/libusb/libusb/archive/refs/tags/v${LIBUSB_VERSION}.tar.gz
|
||||
tar xzf v${LIBUSB_VERSION}.tar.gz
|
||||
pushd libusb-${LIBUSB_VERSION}
|
||||
autoreconf --install --force
|
||||
./configure --host=${{ matrix.arch }}-w64-mingw32 --prefix=/usr
|
||||
make
|
||||
make install DESTDIR=$PWD/../artifacts
|
||||
popd
|
||||
- name: Install hidapi
|
||||
env:
|
||||
HIDAPI_VERSION: 0.12.0
|
||||
run: |
|
||||
wget -c https://github.com/libusb/hidapi/archive/refs/tags/hidapi-${HIDAPI_VERSION}.tar.gz
|
||||
tar xzf hidapi-${HIDAPI_VERSION}.tar.gz
|
||||
pushd hidapi-hidapi-${HIDAPI_VERSION}
|
||||
autoreconf --install --force
|
||||
./configure --host=${{ matrix.arch }}-w64-mingw32 --prefix=/usr LDFLAGS='-static-libgcc'
|
||||
make
|
||||
make install DESTDIR=$PWD/../artifacts
|
||||
popd
|
||||
- run: autoreconf --install --force
|
||||
- run: ./configure --host=${{ matrix.arch }}-w64-mingw32 --prefix=/usr
|
||||
env:
|
||||
PKG_CONFIG_LIBDIR: ${{ github.workspace }}/artifacts/usr/lib/pkgconfig
|
||||
PKG_CONFIG_SYSROOT_DIR: ${{ github.workspace }}/artifacts
|
||||
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS: 1
|
||||
PKG_CONFIG_ALLOW_SYSTEM_LIBS: 1
|
||||
- run: make
|
||||
- run: make distcheck
|
||||
- name: Package artifacts
|
||||
run: |
|
||||
make install DESTDIR=$PWD/artifacts
|
||||
tar -czf ${{ github.job }}-${{ matrix.arch }}.tar.gz -C artifacts usr
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ github.job }}-${{ matrix.arch }}
|
||||
path: ${{ github.job }}-${{ matrix.arch }}.tar.gz
|
||||
|
||||
# msvc:
|
||||
#
|
||||
# name: Visual Studio
|
||||
#
|
||||
# runs-on: windows-latest
|
||||
#
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# platform: [x86, x64]
|
||||
#
|
||||
# env:
|
||||
# CONFIGURATION: Release
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: msys2/setup-msys2@v2
|
||||
# with:
|
||||
# install: autoconf automake libtool pkg-config make gcc
|
||||
# - run: |
|
||||
# autoreconf --install --force
|
||||
# ./configure --prefix=/usr
|
||||
# make -C src revision.h
|
||||
# shell: msys2 {0}
|
||||
# - uses: microsoft/setup-msbuild@v1
|
||||
# - run: msbuild -m -p:Platform=${{ matrix.platform }} -p:Configuration=${{ env.CONFIGURATION }} contrib/msvc/libdivecomputer.vcxproj
|
||||
# - uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: ${{ github.job }}-${{ matrix.platform }}
|
||||
# path: contrib/msvc/${{ matrix.platform }}/${{ env.CONFIGURATION }}/bin
|
||||
|
||||
android:
|
||||
|
||||
name: Android
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: |
|
||||
autoreconf --install --force
|
||||
./configure --prefix=/usr
|
||||
make -C src revision.h
|
||||
- run: $ANDROID_NDK/ndk-build -C contrib/android NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: contrib/android/libs
|
||||
47
.github/workflows/release.yml
vendored
47
.github/workflows/release.yml
vendored
@ -1,47 +0,0 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags: 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Version number
|
||||
id: version
|
||||
run: |
|
||||
VERSION="${GITHUB_REF/refs\/tags\/v/}"
|
||||
echo "version=${VERSION}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build distribution tarball
|
||||
id: build
|
||||
run: |
|
||||
sudo apt-get install libbluetooth-dev libusb-1.0-0-dev
|
||||
autoreconf --install --force
|
||||
./configure
|
||||
make
|
||||
make distcheck
|
||||
|
||||
- name: Check tarball version number
|
||||
id: check
|
||||
run: |
|
||||
FILENAME="libdivecomputer-${{ steps.version.outputs.version }}.tar.gz"
|
||||
if [ ! -f "${FILENAME}" ]; then
|
||||
echo ::error ::Tarball \'${FILENAME}\' not found!
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Create Github release
|
||||
id: release
|
||||
run: |
|
||||
VERSION="${{ steps.version.outputs.version }}"
|
||||
if [ "${VERSION}" != "${VERSION%%-*}" ]; then
|
||||
PRERELEASE="-p"
|
||||
fi
|
||||
gh release create ${PRERELEASE} "${{ github.ref }}" "libdivecomputer-${VERSION}.tar.gz"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
34
.gitignore
vendored
34
.gitignore
vendored
@ -37,7 +37,32 @@ Makefile.in
|
||||
/doc/html/
|
||||
/doc/latex/
|
||||
|
||||
/examples/dctool
|
||||
/examples/aladin
|
||||
/examples/atom2
|
||||
/examples/d9
|
||||
/examples/darwin
|
||||
/examples/edy
|
||||
/examples/eon
|
||||
/examples/frog
|
||||
/examples/iconhd
|
||||
/examples/leonardo
|
||||
/examples/memomouse
|
||||
/examples/n2ition3
|
||||
/examples/nemo
|
||||
/examples/ostc
|
||||
/examples/ostc-fwupdate
|
||||
/examples/predator
|
||||
/examples/puck
|
||||
/examples/sensus
|
||||
/examples/sensuspro
|
||||
/examples/sensusultra
|
||||
/examples/smart
|
||||
/examples/solution
|
||||
/examples/universal
|
||||
/examples/veo250
|
||||
/examples/vtpro
|
||||
/examples/vyper
|
||||
/examples/vyper2
|
||||
|
||||
/include/libdivecomputer/version.h
|
||||
|
||||
@ -47,14 +72,13 @@ Makefile.in
|
||||
/m4/ltsugar.m4
|
||||
/m4/ltversion.m4
|
||||
|
||||
/msvc/x64/
|
||||
/msvc/x86/
|
||||
/msvc/Debug/
|
||||
/msvc/Release/
|
||||
/msvc/*.ncb
|
||||
/msvc/*.suo
|
||||
/msvc/*.vcproj.*.user
|
||||
|
||||
/src/libdivecomputer.exp
|
||||
/src/libdivecomputer.la
|
||||
/src/libdivecomputer.rc
|
||||
/src/revision.h
|
||||
|
||||
/build
|
||||
|
||||
55
.travis.yml
55
.travis.yml
@ -1,55 +0,0 @@
|
||||
language: c
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
|
||||
- os: linux
|
||||
compiler: clang
|
||||
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
|
||||
- os: osx
|
||||
compiler: clang
|
||||
|
||||
- os: linux
|
||||
compiler: i686-w64-mingw32-gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gcc-mingw-w64
|
||||
- binutils-mingw-w64
|
||||
- mingw-w64-tools
|
||||
|
||||
- os: linux
|
||||
compiler: x86_64-w64-mingw32-gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gcc-mingw-w64
|
||||
- binutils-mingw-w64
|
||||
- mingw-w64-tools
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libbluetooth-dev
|
||||
- libusb-1.0-0-dev
|
||||
homebrew:
|
||||
packages:
|
||||
- hidapi
|
||||
- libusb
|
||||
|
||||
script:
|
||||
- case $CC in
|
||||
*-gcc) TARGET="${CC%-gcc}" ;;
|
||||
esac
|
||||
- if [ -n "$TARGET" ]; then
|
||||
TARGETOPTS="--host=${TARGET}";
|
||||
unset CC;
|
||||
fi
|
||||
- autoreconf --install --force
|
||||
- ./configure $TARGETOPTS --disable-doc
|
||||
- make
|
||||
@ -16,8 +16,4 @@ pkgconfig_DATA = libdivecomputer.pc
|
||||
|
||||
EXTRA_DIST = \
|
||||
libdivecomputer.pc.in \
|
||||
contrib/README \
|
||||
contrib/android/Android.mk \
|
||||
contrib/msvc/libdivecomputer.vcxproj \
|
||||
contrib/msvc/libdivecomputer.vcxproj.filters \
|
||||
contrib/udev/libdivecomputer.rules
|
||||
msvc/libdivecomputer.vcproj
|
||||
|
||||
111
NEWS
111
NEWS
@ -1,114 +1,3 @@
|
||||
Version 0.8.0 (2023-05-11)
|
||||
==========================
|
||||
|
||||
The v0.8.0 release is mainly a bugfix release, and brings in support for a
|
||||
number of new devices. This release is fully backwards compatible with the
|
||||
previous one.
|
||||
|
||||
New features:
|
||||
|
||||
* Add support for new backends:
|
||||
- excursion: Deep Six Excursion, Crest CR-4, Genesis Centauri, Tusa TC1, Scorpena Alpha
|
||||
- screen: Seac Screen and Action
|
||||
- cosmiq: Deepblu Cosmiq+
|
||||
- s1: Oceans S1
|
||||
- freedom: Divesoft Freedom and Liberty
|
||||
* Add support for some new devices:
|
||||
- Aqualung: i200C
|
||||
- Cressi: Donatello, Michelangelo, Neon
|
||||
- Mares: Puck Pro +
|
||||
- Oceanic: Geo Air
|
||||
- Ratio: iX3M 2
|
||||
- Scubapro: G2 TEK
|
||||
- Shearwater: Petrel 3, Perdix 2
|
||||
- Sherwood: Amphos Air 2.0
|
||||
* Add support for parsing the decompression model
|
||||
* Add a public api to configure the depth calibration
|
||||
* Add a public api to configure the clock synchronization
|
||||
* Add a basic Android build system
|
||||
|
||||
Removed/changed features:
|
||||
|
||||
* Migrate to Visual Studio 2013 (or newer)
|
||||
* Move the Visual Studio project to the contrib directory
|
||||
|
||||
Version 0.7.0 (2021-05-07)
|
||||
==========================
|
||||
|
||||
The main highlight of the v0.7.0 release is the introduction of the new
|
||||
I/O interface. With this common interface, the dive computer backends
|
||||
can more easily use different I/O implementations at runtime, including
|
||||
an application defined one. This is needed to support Bluetooth Low
|
||||
Energy (BLE), for which there is no built-in implementation available.
|
||||
|
||||
Due to the fundamental changes to the I/O layer, this release is not
|
||||
backwards compatible.
|
||||
|
||||
New features:
|
||||
|
||||
* A new I/O interface
|
||||
* Add support for new backends:
|
||||
- goa: Cressi Goa and Cartesio
|
||||
- divecomputereu: Tecdiving DiveComputer.eu
|
||||
- extreme: McLean Extreme
|
||||
- lynx: Liquivision Xen, Xeo, Lynx and Kaon
|
||||
- sp2: Sporasub SP2
|
||||
* Add support for many new devices:
|
||||
- Aqualung: i100, i200C, i300C, i470TC, i550C, i770R
|
||||
- Heinrichs Weikamp: OSTC 2 TR
|
||||
- Mares: Genius, Horizon, Quad Air, Smart Air
|
||||
- Oceanic: Geo 4.0, Pro Plus 4, Pro Plus X, Veo 4.0
|
||||
- Ratio: iDive Color, iX3M GPS, iX3M 2021
|
||||
- Scubapro: A1, A2, Aladin H Matrix, G2 Console, G2 HUD
|
||||
- Seac: Guru, Jack
|
||||
- Shearwater: Peregrine, Teric
|
||||
- Sherwood: Amphos 2.0, Beacon, Sage, Wisdom 4
|
||||
- Suunto: D5, EON Steel Black
|
||||
- Tusa: Talis
|
||||
* Firmware upgrade support for the Ratio computers
|
||||
* Support for semi-closed circuit diving
|
||||
|
||||
Removed/changed features:
|
||||
|
||||
* Unify the Uwatec Smart, Meridian and G2 backends
|
||||
|
||||
Version 0.6.0 (2017-11-24)
|
||||
==========================
|
||||
|
||||
The v0.6.0 release adds support for several new devices, introduces two
|
||||
new features and fixes a couple of bugs. There are a few minor backwards
|
||||
incompatible changes, but most applications won't be affected by those.
|
||||
|
||||
New features:
|
||||
|
||||
* Add support for new backends:
|
||||
- g2: Scubapro G2, Aladin Sport Matrix, Aladin Square
|
||||
* Add support for many new devices:
|
||||
- Aqualung: i200, i750TC
|
||||
- Cochran: Commander I, II and TM
|
||||
- Cressi: Drake
|
||||
- Hollis: DG02
|
||||
- Mares: Quad
|
||||
- Oceanic: F10
|
||||
- Ratio: iX3M and iDive series
|
||||
- Suunto: D4f, Eon Core
|
||||
- Uwatec: Aladin Tec 3G
|
||||
* Add basic timezone support
|
||||
* Add support for synchronizing the device clock
|
||||
* Document the public api with man pages
|
||||
|
||||
Removed/changed features:
|
||||
|
||||
* Remove the deprecated gas change events
|
||||
* Remove the deprecated vendor_product_parser_create(),
|
||||
vendor_product_device_open() and vendor_product_extract_dives()
|
||||
functions from the public api
|
||||
* Remove the hw_{frog,ostc,ostc3}_device_clock() functions
|
||||
|
||||
Bug fixes:
|
||||
|
||||
* Many small improvements
|
||||
|
||||
Version 0.5.0 (2016-09-30)
|
||||
==========================
|
||||
|
||||
|
||||
162
configure.ac
162
configure.ac
@ -1,8 +1,8 @@
|
||||
# Versioning.
|
||||
m4_define([dc_version_major],[0])
|
||||
m4_define([dc_version_minor],[9])
|
||||
m4_define([dc_version_minor],[6])
|
||||
m4_define([dc_version_micro],[0])
|
||||
m4_define([dc_version_suffix],[devel-Subsurface-NG])
|
||||
m4_define([dc_version_suffix],[devel-Subsurface-branch])
|
||||
m4_define([dc_version],dc_version_major.dc_version_minor.dc_version_micro[]m4_ifset([dc_version_suffix],-[dc_version_suffix]))
|
||||
|
||||
# Libtool versioning.
|
||||
@ -64,29 +64,24 @@ AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = "xyes"])
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_C99
|
||||
AC_CHECK_PROGS([DOXYGEN], [doxygen])
|
||||
AC_CHECK_PROGS([MANDOC], [mandoc])
|
||||
|
||||
AM_CONDITIONAL([HAVE_DOXYGEN],[test -n "$DOXYGEN"])
|
||||
AM_CONDITIONAL([HAVE_MANDOC],[test -n "$MANDOC"])
|
||||
|
||||
# Enable automake silent build rules.
|
||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
||||
|
||||
# Checks for operating system.
|
||||
AC_MSG_CHECKING([for operating system])
|
||||
# Checks for native Windows.
|
||||
AC_MSG_CHECKING([for native Win32])
|
||||
case "$host" in
|
||||
*-*-mingw*)
|
||||
platform=windows
|
||||
;;
|
||||
*-*-darwin*)
|
||||
platform=mac
|
||||
os_win32=yes
|
||||
;;
|
||||
*)
|
||||
platform=default
|
||||
os_win32=no
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$platform])
|
||||
AM_CONDITIONAL([OS_WIN32], [test "$platform" = "windows"])
|
||||
AC_MSG_RESULT([$os_win32])
|
||||
AM_CONDITIONAL([OS_WIN32], [test "$os_win32" = "yes"])
|
||||
|
||||
DEPENDENCIES=""
|
||||
|
||||
@ -103,62 +98,29 @@ AS_IF([test "x$with_libusb" != "xno"], [
|
||||
])
|
||||
])
|
||||
|
||||
# Checks for MTP support.
|
||||
AC_ARG_WITH([libmtp],
|
||||
[AS_HELP_STRING([--without-libmtp],
|
||||
[Build without the libmtp library])],
|
||||
[], [with_libmtp=auto])
|
||||
AS_IF([test "x$with_libmtp" != "xno"], [
|
||||
PKG_CHECK_MODULES([LIBMTP], [libmtp], [have_libmtp=yes], [have_libmtp=no])
|
||||
AS_IF([test "x$have_libmtp" = "xyes"], [
|
||||
AC_DEFINE([HAVE_LIBMTP], [1], [libmtp library])
|
||||
DEPENDENCIES="$DEPENDENCIES libmtp"
|
||||
])
|
||||
])
|
||||
|
||||
# Checks for HIDAPI support.
|
||||
AC_ARG_WITH([hidapi],
|
||||
[AS_HELP_STRING([--without-hidapi],
|
||||
[Build without the hidapi library])],
|
||||
[], [with_hidapi=hidapi])
|
||||
[], [with_hidapi=auto])
|
||||
AS_IF([test "x$with_hidapi" != "xno"], [
|
||||
PKG_CHECK_MODULES([HIDAPI], [$with_hidapi], [have_hidapi=yes], [have_hidapi=no])
|
||||
PKG_CHECK_MODULES([HIDAPI], [hidapi], [have_hidapi=yes], [have_hidapi=no])
|
||||
AS_IF([test "x$have_hidapi" = "xyes"], [
|
||||
AC_DEFINE([HAVE_HIDAPI], [1], [hidapi library])
|
||||
DEPENDENCIES="$DEPENDENCIES $with_hidapi"
|
||||
])
|
||||
])
|
||||
|
||||
# Checks for BlueZ (bluetooth) support.
|
||||
AC_ARG_WITH([bluez],
|
||||
[AS_HELP_STRING([--without-bluez],
|
||||
[Build without the BlueZ library])],
|
||||
[], [with_bluez=auto])
|
||||
AS_IF([test "x$with_bluez" != "xno"], [
|
||||
PKG_CHECK_MODULES([BLUEZ], [bluez], [have_bluez=yes], [have_bluez=no])
|
||||
AS_IF([test "x$have_bluez" = "xyes"], [
|
||||
AC_DEFINE([HAVE_BLUEZ], [1], [BlueZ library])
|
||||
DEPENDENCIES="$DEPENDENCIES bluez"
|
||||
DEPENDENCIES="$DEPENDENCIES hidapi"
|
||||
])
|
||||
])
|
||||
|
||||
AC_SUBST([DEPENDENCIES])
|
||||
|
||||
# Checks for Windows bluetooth support.
|
||||
AC_CHECK_HEADERS([winsock2.h ws2bth.h], , , [
|
||||
#if HAVE_WINSOCK2_H
|
||||
# include <winsock2.h>
|
||||
# endif
|
||||
])
|
||||
|
||||
# Checks for IrDA support.
|
||||
AC_CHECK_HEADERS([winsock2.h af_irda.h], , , [
|
||||
AC_CHECK_HEADERS([winsock2.h af_irda.h], [irda_win32=yes], [irda_win32=no], [
|
||||
#if HAVE_WINSOCK2_H
|
||||
# include <winsock2.h>
|
||||
# endif
|
||||
])
|
||||
|
||||
AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], , , [
|
||||
AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], [irda_linux=yes], [irda_linux=no], [
|
||||
#if HAVE_SYS_SOCKET_H
|
||||
# include <sys/socket.h>
|
||||
# endif
|
||||
@ -167,56 +129,26 @@ AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], , , [
|
||||
# endif
|
||||
])
|
||||
|
||||
if test "$irda_win32" = "yes" || test "$irda_linux" = "yes"; then
|
||||
AC_DEFINE([HAVE_IRDA], [1], [IrDA support])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([IRDA], [test "$irda_win32" = "yes" || test "$irda_linux" = "yes"])
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([linux/serial.h])
|
||||
AC_CHECK_HEADERS([IOKit/serial/ioss.h])
|
||||
AC_CHECK_HEADERS([unistd.h getopt.h])
|
||||
AC_CHECK_HEADERS([getopt.h])
|
||||
AC_CHECK_HEADERS([sys/param.h])
|
||||
AC_CHECK_HEADERS([pthread.h])
|
||||
AC_CHECK_HEADERS([mach/mach_time.h])
|
||||
|
||||
# Checks for global variable declarations.
|
||||
AC_CHECK_DECLS([optreset])
|
||||
|
||||
# Checks for structures.
|
||||
AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
|
||||
#include <time.h>
|
||||
])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_STRERROR_R
|
||||
AC_CHECK_FUNCS([localtime_r gmtime_r timegm _mkgmtime])
|
||||
AC_CHECK_FUNCS([clock_gettime mach_absolute_time])
|
||||
AC_CHECK_FUNCS([localtime_r gmtime_r])
|
||||
AC_CHECK_FUNCS([getopt_long])
|
||||
|
||||
# Checks for supported compiler options.
|
||||
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option],[ERROR_CFLAGS])
|
||||
AX_APPEND_COMPILE_FLAGS([ \
|
||||
-Wall \
|
||||
-Wshadow \
|
||||
-Wrestrict \
|
||||
-Wformat=2 \
|
||||
-Wwrite-strings \
|
||||
-Wpointer-arith \
|
||||
-Wstrict-prototypes \
|
||||
-Wmissing-prototypes \
|
||||
-Wmissing-declarations \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-unused-function \
|
||||
-Wno-unused-variable \
|
||||
-Wno-unused-but-set-variable \
|
||||
-Wno-pointer-sign \
|
||||
-Wno-shadow \
|
||||
-Wenum-conversion \
|
||||
-Werror=enum-conversion \
|
||||
-fmacro-prefix-map='$(top_srcdir)/'= \
|
||||
],,[$ERROR_CFLAGS])
|
||||
|
||||
# Windows specific compiler options.
|
||||
AS_IF([test "$platform" = "windows"], [
|
||||
AX_APPEND_COMPILE_FLAGS([-Wno-pedantic-ms-format])
|
||||
])
|
||||
|
||||
# Versioning.
|
||||
AC_SUBST([DC_VERSION],[dc_version])
|
||||
AC_SUBST([DC_VERSION_MAJOR],[dc_version_major])
|
||||
@ -229,25 +161,6 @@ m4_ifset([dc_version_suffix],[
|
||||
AC_DEFINE(HAVE_VERSION_SUFFIX, [1], [Define if a version suffix is present.])
|
||||
])
|
||||
|
||||
# Supported transports
|
||||
transport_serial="yes"
|
||||
transport_usb="${have_libusb-no}"
|
||||
if test "$have_hidapi" = "yes"; then
|
||||
transport_usbhid="yes"
|
||||
elif test "$have_libusb" = "yes" && test "$platform" != "mac"; then
|
||||
transport_usbhid="yes"
|
||||
else
|
||||
transport_usbhid="no"
|
||||
fi
|
||||
if test "$platform" = "windows"; then
|
||||
transport_irda="$ac_cv_header_af_irda_h"
|
||||
transport_bluetooth="$ac_cv_header_ws2bth_h"
|
||||
else
|
||||
transport_irda="$ac_cv_header_linux_irda_h"
|
||||
transport_bluetooth="${have_bluez-no}"
|
||||
fi
|
||||
transport_ble="no"
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
libdivecomputer.pc
|
||||
Makefile
|
||||
@ -255,41 +168,10 @@ AC_CONFIG_FILES([
|
||||
include/libdivecomputer/Makefile
|
||||
include/libdivecomputer/version.h
|
||||
src/Makefile
|
||||
src/libdivecomputer.rc
|
||||
doc/Makefile
|
||||
doc/doxygen.cfg
|
||||
doc/man/Makefile
|
||||
examples/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
AC_MSG_NOTICE([
|
||||
$PACKAGE $VERSION
|
||||
===============
|
||||
|
||||
Compiler:
|
||||
|
||||
CC : $CC
|
||||
CFLAGS : $CFLAGS
|
||||
LDFLAGS : $LDFLAGS
|
||||
|
||||
Features:
|
||||
|
||||
Logging : $enable_logging
|
||||
Pseudo terminal : $enable_pty
|
||||
Example applications : $enable_examples
|
||||
Documentation : $enable_doc
|
||||
|
||||
Transports:
|
||||
|
||||
Serial : $transport_serial
|
||||
USB : $transport_usb
|
||||
USBHID : $transport_usbhid
|
||||
IrDA : $transport_irda
|
||||
Bluetooth : $transport_bluetooth
|
||||
BLE : $transport_ble
|
||||
|
||||
Building:
|
||||
|
||||
Type 'make' to compile $PACKAGE.
|
||||
|
||||
Type 'make install' to install $PACKAGE.
|
||||
])
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
Alternative build systems
|
||||
=========================
|
||||
|
||||
The autotools based build system is the official build system for the
|
||||
libdivecomputer project. But for convenience, a few alternative build systems
|
||||
are available as well. Unfortunately, these builds systems require a few extra
|
||||
steps to generate some header files.
|
||||
|
||||
If you have access to a UNIX build system (for example a Linux virtual machine,
|
||||
MinGW, Cygwin or the Windows Subsystem for Linux), you can use the autotools
|
||||
build system to generate those files:
|
||||
|
||||
$ autoreconf --install --force
|
||||
$ ./configure
|
||||
$ make -C src revision.h
|
||||
|
||||
Alternative, you can generate those files manually. First, create the version.h
|
||||
file from the version.h.in template:
|
||||
|
||||
$ cp include/libdivecomputer/version.h.in include/libdivecomputer/version.h
|
||||
|
||||
and replace all the @DC_VERSION@ placeholders with the values defined in the
|
||||
configure.ac file.
|
||||
|
||||
Next, generate the revision.h file:
|
||||
|
||||
$ echo "#define DC_VERSION_REVISION \"$(git rev-parse --verify HEAD)\"" > src/revision.h
|
||||
|
||||
The alternative build systems are ready to use now.
|
||||
|
||||
Visual Studio
|
||||
-------------
|
||||
|
||||
The Visual Studio project file can be opened in the IDE, or build directly from
|
||||
the command-line:
|
||||
|
||||
msbuild -m -p:Platform=x86|x64 -p:Configuration=Debug|Release contrib/msvc/libdivecomputer.vcxproj
|
||||
|
||||
Android NDK
|
||||
-----------
|
||||
|
||||
$ANDROID_NDK/ndk-build -C contrib/android NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk
|
||||
|
||||
Linux udev rules
|
||||
================
|
||||
|
||||
For dive computers using USB or USB HID communication, regular users typically
|
||||
don't have the necessary permissions to access the device nodes. This can be
|
||||
fixed with some udev rules.
|
||||
|
||||
Install the udev rules, and reload them:
|
||||
|
||||
$ sudo cp contrib/udev/libdivecomputer.rules /etc/udev/rules.d/
|
||||
$ sudo udevadm control --reload
|
||||
|
||||
Note: the provided udev rules assume the user is in the plugdev group.
|
||||
@ -1,148 +0,0 @@
|
||||
LOCAL_PATH := $(call my-dir)/../..
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := libdivecomputer
|
||||
LOCAL_CFLAGS := -DENABLE_LOGGING -DHAVE_VERSION_SUFFIX -DHAVE_PTHREAD_H -DHAVE_STRERROR_R -DHAVE_CLOCK_GETTIME -DHAVE_LOCALTIME_R -DHAVE_GMTIME_R -DHAVE_TIMEGM -DHAVE_STRUCT_TM_TM_GMTOFF
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_SRC_FILES := \
|
||||
src/aes.c \
|
||||
src/array.c \
|
||||
src/atomics_cobalt.c \
|
||||
src/atomics_cobalt_parser.c \
|
||||
src/bluetooth.c \
|
||||
src/buffer.c \
|
||||
src/checksum.c \
|
||||
src/citizen_aqualand.c \
|
||||
src/citizen_aqualand_parser.c \
|
||||
src/cochran_commander.c \
|
||||
src/cochran_commander_parser.c \
|
||||
src/common.c \
|
||||
src/context.c \
|
||||
src/cressi_edy.c \
|
||||
src/cressi_edy_parser.c \
|
||||
src/cressi_goa.c \
|
||||
src/cressi_goa_parser.c \
|
||||
src/cressi_leonardo.c \
|
||||
src/cressi_leonardo_parser.c \
|
||||
src/custom.c \
|
||||
src/datetime.c \
|
||||
src/deepblu_cosmiq.c \
|
||||
src/deepblu_cosmiq_parser.c \
|
||||
src/deepsix_excursion.c \
|
||||
src/deepsix_excursion_parser.c \
|
||||
src/descriptor.c \
|
||||
src/device.c \
|
||||
src/diverite_nitekq.c \
|
||||
src/diverite_nitekq_parser.c \
|
||||
src/divesoft_freedom.c \
|
||||
src/divesoft_freedom_parser.c \
|
||||
src/divesystem_idive.c \
|
||||
src/divesystem_idive_parser.c \
|
||||
src/hdlc.c \
|
||||
src/hw_frog.c \
|
||||
src/hw_ostc3.c \
|
||||
src/hw_ostc.c \
|
||||
src/hw_ostc_parser.c \
|
||||
src/ihex.c \
|
||||
src/iostream.c \
|
||||
src/irda.c \
|
||||
src/iterator.c \
|
||||
src/liquivision_lynx.c \
|
||||
src/liquivision_lynx_parser.c \
|
||||
src/mares_common.c \
|
||||
src/mares_darwin.c \
|
||||
src/mares_darwin_parser.c \
|
||||
src/mares_iconhd.c \
|
||||
src/mares_iconhd_parser.c \
|
||||
src/mares_nemo.c \
|
||||
src/mares_nemo_parser.c \
|
||||
src/mares_puck.c \
|
||||
src/mclean_extreme.c \
|
||||
src/mclean_extreme_parser.c \
|
||||
src/oceanic_atom2.c \
|
||||
src/oceanic_atom2_parser.c \
|
||||
src/oceanic_common.c \
|
||||
src/oceanic_veo250.c \
|
||||
src/oceanic_veo250_parser.c \
|
||||
src/oceanic_vtpro.c \
|
||||
src/oceanic_vtpro_parser.c \
|
||||
src/oceans_s1.c \
|
||||
src/oceans_s1_common.c \
|
||||
src/oceans_s1_parser.c \
|
||||
src/packet.c \
|
||||
src/parser.c \
|
||||
src/pelagic_i330r.c \
|
||||
src/platform.c \
|
||||
src/rbstream.c \
|
||||
src/reefnet_sensus.c \
|
||||
src/reefnet_sensus_parser.c \
|
||||
src/reefnet_sensuspro.c \
|
||||
src/reefnet_sensuspro_parser.c \
|
||||
src/reefnet_sensusultra.c \
|
||||
src/reefnet_sensusultra_parser.c \
|
||||
src/ringbuffer.c \
|
||||
src/seac_screen.c \
|
||||
src/seac_screen_parser.c \
|
||||
src/serial_posix.c \
|
||||
src/shearwater_common.c \
|
||||
src/shearwater_petrel.c \
|
||||
src/shearwater_predator.c \
|
||||
src/shearwater_predator_parser.c \
|
||||
src/socket.c \
|
||||
src/sporasub_sp2.c \
|
||||
src/sporasub_sp2_parser.c \
|
||||
src/suunto_common2.c \
|
||||
src/suunto_common.c \
|
||||
src/suunto_d9.c \
|
||||
src/suunto_d9_parser.c \
|
||||
src/suunto_eon.c \
|
||||
src/suunto_eon_parser.c \
|
||||
src/suunto_eonsteel.c \
|
||||
src/suunto_eonsteel_parser.c \
|
||||
src/suunto_solution.c \
|
||||
src/suunto_solution_parser.c \
|
||||
src/suunto_vyper2.c \
|
||||
src/suunto_vyper.c \
|
||||
src/suunto_vyper_parser.c \
|
||||
src/tecdiving_divecomputereu.c \
|
||||
src/tecdiving_divecomputereu_parser.c \
|
||||
src/timer.c \
|
||||
src/usb.c \
|
||||
src/usbhid.c \
|
||||
src/uwatec_aladin.c \
|
||||
src/uwatec_memomouse.c \
|
||||
src/uwatec_memomouse_parser.c \
|
||||
src/uwatec_smart.c \
|
||||
src/uwatec_smart_parser.c \
|
||||
src/version.c \
|
||||
src/zeagle_n2ition3.c \
|
||||
src/field-cache.c \
|
||||
src/usb_storage.c \
|
||||
src/garmin.c \
|
||||
src/garmin_parser.c
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := dctool
|
||||
LOCAL_SHARED_LIBRARIES := libdivecomputer
|
||||
LOCAL_CFLAGS := -DHAVE_UNISTD_H -DHAVE_GETOPT_H -DHAVE_GETOPT_LONG -DHAVE_DECL_OPTRESET=1
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_SRC_FILES := \
|
||||
examples/common.c \
|
||||
examples/dctool.c \
|
||||
examples/dctool_download.c \
|
||||
examples/dctool_dump.c \
|
||||
examples/dctool_fwupdate.c \
|
||||
examples/dctool_help.c \
|
||||
examples/dctool_list.c \
|
||||
examples/dctool_parse.c \
|
||||
examples/dctool_read.c \
|
||||
examples/dctool_scan.c \
|
||||
examples/dctool_timesync.c \
|
||||
examples/dctool_version.c \
|
||||
examples/dctool_write.c \
|
||||
examples/output.c \
|
||||
examples/output_raw.c \
|
||||
examples/output_xml.c \
|
||||
examples/utils.c
|
||||
include $(BUILD_EXECUTABLE)
|
||||
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{CEA7215A-D6B5-4840-8086-3C854F371997}</ProjectGuid>
|
||||
<RootNamespace>libdivecomputer</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\bin\</OutDir>
|
||||
<IntDir>$(PlatformTarget)\$(Configuration)\obj\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\bin\</OutDir>
|
||||
<IntDir>$(PlatformTarget)\$(Configuration)\obj\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\bin\</OutDir>
|
||||
<IntDir>$(PlatformTarget)\$(Configuration)\obj\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\bin\</OutDir>
|
||||
<IntDir>$(PlatformTarget)\$(Configuration)\obj\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBDIVECOMPUTER_EXPORTS;ENABLE_LOGGING;HAVE_VERSION_SUFFIX;HAVE_AF_IRDA_H;HAVE_WS2BTH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>$(OutDir)libdivecomputer.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBDIVECOMPUTER_EXPORTS;ENABLE_LOGGING;HAVE_VERSION_SUFFIX;HAVE_AF_IRDA_H;HAVE_WS2BTH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>$(OutDir)libdivecomputer.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBDIVECOMPUTER_EXPORTS;ENABLE_LOGGING;HAVE_VERSION_SUFFIX;HAVE_AF_IRDA_H;HAVE_WS2BTH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>$(OutDir)libdivecomputer.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBDIVECOMPUTER_EXPORTS;ENABLE_LOGGING;HAVE_VERSION_SUFFIX;HAVE_AF_IRDA_H;HAVE_WS2BTH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>$(OutDir)libdivecomputer.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\aes.c" />
|
||||
<ClCompile Include="..\..\src\array.c" />
|
||||
<ClCompile Include="..\..\src\atomics_cobalt.c" />
|
||||
<ClCompile Include="..\..\src\atomics_cobalt_parser.c" />
|
||||
<ClCompile Include="..\..\src\bluetooth.c" />
|
||||
<ClCompile Include="..\..\src\buffer.c" />
|
||||
<ClCompile Include="..\..\src\checksum.c" />
|
||||
<ClCompile Include="..\..\src\citizen_aqualand.c" />
|
||||
<ClCompile Include="..\..\src\citizen_aqualand_parser.c" />
|
||||
<ClCompile Include="..\..\src\cochran_commander.c" />
|
||||
<ClCompile Include="..\..\src\cochran_commander_parser.c" />
|
||||
<ClCompile Include="..\..\src\common.c" />
|
||||
<ClCompile Include="..\..\src\context.c" />
|
||||
<ClCompile Include="..\..\src\cressi_edy.c" />
|
||||
<ClCompile Include="..\..\src\cressi_edy_parser.c" />
|
||||
<ClCompile Include="..\..\src\cressi_goa.c" />
|
||||
<ClCompile Include="..\..\src\cressi_goa_parser.c" />
|
||||
<ClCompile Include="..\..\src\cressi_leonardo.c" />
|
||||
<ClCompile Include="..\..\src\cressi_leonardo_parser.c" />
|
||||
<ClCompile Include="..\..\src\custom.c" />
|
||||
<ClCompile Include="..\..\src\datetime.c" />
|
||||
<ClCompile Include="..\..\src\deepblu_cosmiq.c" />
|
||||
<ClCompile Include="..\..\src\deepblu_cosmiq_parser.c" />
|
||||
<ClCompile Include="..\..\src\deepsix_excursion.c" />
|
||||
<ClCompile Include="..\..\src\deepsix_excursion_parser.c" />
|
||||
<ClCompile Include="..\..\src\descriptor.c" />
|
||||
<ClCompile Include="..\..\src\device.c" />
|
||||
<ClCompile Include="..\..\src\diverite_nitekq.c" />
|
||||
<ClCompile Include="..\..\src\diverite_nitekq_parser.c" />
|
||||
<ClCompile Include="..\..\src\divesoft_freedom.c" />
|
||||
<ClCompile Include="..\..\src\divesoft_freedom_parser.c" />
|
||||
<ClCompile Include="..\..\src\divesystem_idive.c" />
|
||||
<ClCompile Include="..\..\src\divesystem_idive_parser.c" />
|
||||
<ClCompile Include="..\..\src\hdlc.c" />
|
||||
<ClCompile Include="..\..\src\hw_frog.c" />
|
||||
<ClCompile Include="..\..\src\hw_ostc.c" />
|
||||
<ClCompile Include="..\..\src\hw_ostc3.c" />
|
||||
<ClCompile Include="..\..\src\hw_ostc_parser.c" />
|
||||
<ClCompile Include="..\..\src\ihex.c" />
|
||||
<ClCompile Include="..\..\src\iostream.c" />
|
||||
<ClCompile Include="..\..\src\irda.c" />
|
||||
<ClCompile Include="..\..\src\iterator.c" />
|
||||
<ClCompile Include="..\..\src\liquivision_lynx.c" />
|
||||
<ClCompile Include="..\..\src\liquivision_lynx_parser.c" />
|
||||
<ClCompile Include="..\..\src\mares_common.c" />
|
||||
<ClCompile Include="..\..\src\mares_darwin.c" />
|
||||
<ClCompile Include="..\..\src\mares_darwin_parser.c" />
|
||||
<ClCompile Include="..\..\src\mares_iconhd.c" />
|
||||
<ClCompile Include="..\..\src\mares_iconhd_parser.c" />
|
||||
<ClCompile Include="..\..\src\mares_nemo.c" />
|
||||
<ClCompile Include="..\..\src\mares_nemo_parser.c" />
|
||||
<ClCompile Include="..\..\src\mares_puck.c" />
|
||||
<ClCompile Include="..\..\src\mclean_extreme.c" />
|
||||
<ClCompile Include="..\..\src\mclean_extreme_parser.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_atom2.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_atom2_parser.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_common.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_veo250.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_veo250_parser.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_vtpro.c" />
|
||||
<ClCompile Include="..\..\src\oceanic_vtpro_parser.c" />
|
||||
<ClCompile Include="..\..\src\oceans_s1.c" />
|
||||
<ClCompile Include="..\..\src\oceans_s1_common.c" />
|
||||
<ClCompile Include="..\..\src\oceans_s1_parser.c" />
|
||||
<ClCompile Include="..\..\src\packet.c" />
|
||||
<ClCompile Include="..\..\src\parser.c" />
|
||||
<ClCompile Include="..\..\src\pelagic_i330r.c" />
|
||||
<ClCompile Include="..\..\src\platform.c" />
|
||||
<ClCompile Include="..\..\src\rbstream.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensus.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensuspro.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensuspro_parser.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensusultra.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensusultra_parser.c" />
|
||||
<ClCompile Include="..\..\src\reefnet_sensus_parser.c" />
|
||||
<ClCompile Include="..\..\src\ringbuffer.c" />
|
||||
<ClCompile Include="..\..\src\seac_screen.c" />
|
||||
<ClCompile Include="..\..\src\seac_screen_parser.c" />
|
||||
<ClCompile Include="..\..\src\serial_win32.c" />
|
||||
<ClCompile Include="..\..\src\shearwater_common.c" />
|
||||
<ClCompile Include="..\..\src\shearwater_petrel.c" />
|
||||
<ClCompile Include="..\..\src\shearwater_predator.c" />
|
||||
<ClCompile Include="..\..\src\shearwater_predator_parser.c" />
|
||||
<ClCompile Include="..\..\src\socket.c" />
|
||||
<ClCompile Include="..\..\src\sporasub_sp2.c" />
|
||||
<ClCompile Include="..\..\src\sporasub_sp2_parser.c" />
|
||||
<ClCompile Include="..\..\src\suunto_common.c" />
|
||||
<ClCompile Include="..\..\src\suunto_common2.c" />
|
||||
<ClCompile Include="..\..\src\suunto_d9.c" />
|
||||
<ClCompile Include="..\..\src\suunto_d9_parser.c" />
|
||||
<ClCompile Include="..\..\src\suunto_eon.c" />
|
||||
<ClCompile Include="..\..\src\suunto_eonsteel.c" />
|
||||
<ClCompile Include="..\..\src\suunto_eonsteel_parser.c" />
|
||||
<ClCompile Include="..\..\src\suunto_eon_parser.c" />
|
||||
<ClCompile Include="..\..\src\suunto_solution.c" />
|
||||
<ClCompile Include="..\..\src\suunto_solution_parser.c" />
|
||||
<ClCompile Include="..\..\src\suunto_vyper.c" />
|
||||
<ClCompile Include="..\..\src\suunto_vyper2.c" />
|
||||
<ClCompile Include="..\..\src\suunto_vyper_parser.c" />
|
||||
<ClCompile Include="..\..\src\tecdiving_divecomputereu.c" />
|
||||
<ClCompile Include="..\..\src\tecdiving_divecomputereu_parser.c" />
|
||||
<ClCompile Include="..\..\src\timer.c" />
|
||||
<ClCompile Include="..\..\src\usb.c" />
|
||||
<ClCompile Include="..\..\src\usbhid.c" />
|
||||
<ClCompile Include="..\..\src\uwatec_aladin.c" />
|
||||
<ClCompile Include="..\..\src\uwatec_memomouse.c" />
|
||||
<ClCompile Include="..\..\src\uwatec_memomouse_parser.c" />
|
||||
<ClCompile Include="..\..\src\uwatec_smart.c" />
|
||||
<ClCompile Include="..\..\src\uwatec_smart_parser.c" />
|
||||
<ClCompile Include="..\..\src\version.c" />
|
||||
<ClCompile Include="..\..\src\zeagle_n2ition3.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\libdivecomputer\atomics_cobalt.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\ble.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\bluetooth.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\buffer.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\common.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\context.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\custom.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\datetime.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\descriptor.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\device.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\divesystem_idive.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\hw_frog.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\hw_ostc.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\hw_ostc3.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\ioctl.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\iostream.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\irda.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\iterator.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\oceanic_atom2.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\oceanic_veo250.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\oceanic_vtpro.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\parser.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\reefnet_sensus.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\reefnet_sensuspro.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\reefnet_sensusultra.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\serial.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\suunto_d9.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\suunto_eon.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\suunto_vyper2.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\units.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\usb.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\usbhid.h" />
|
||||
<ClInclude Include="..\..\include\libdivecomputer\version.h" />
|
||||
<ClInclude Include="..\..\src\aes.h" />
|
||||
<ClInclude Include="..\..\src\array.h" />
|
||||
<ClInclude Include="..\..\src\atomics_cobalt.h" />
|
||||
<ClInclude Include="..\..\src\checksum.h" />
|
||||
<ClInclude Include="..\..\src\citizen_aqualand.h" />
|
||||
<ClInclude Include="..\..\src\cochran_commander.h" />
|
||||
<ClInclude Include="..\..\src\common-private.h" />
|
||||
<ClInclude Include="..\..\src\context-private.h" />
|
||||
<ClInclude Include="..\..\src\cressi_edy.h" />
|
||||
<ClInclude Include="..\..\src\cressi_goa.h" />
|
||||
<ClInclude Include="..\..\src\cressi_leonardo.h" />
|
||||
<ClInclude Include="..\..\src\deepblu_cosmiq.h" />
|
||||
<ClInclude Include="..\..\src\deepsix_excursion.h" />
|
||||
<ClInclude Include="..\..\src\device-private.h" />
|
||||
<ClInclude Include="..\..\src\diverite_nitekq.h" />
|
||||
<ClInclude Include="..\..\src\divesoft_freedom.h" />
|
||||
<ClInclude Include="..\..\src\divesystem_idive.h" />
|
||||
<ClInclude Include="..\..\src\hdlc.h" />
|
||||
<ClInclude Include="..\..\src\hw_frog.h" />
|
||||
<ClInclude Include="..\..\src\hw_ostc.h" />
|
||||
<ClInclude Include="..\..\src\hw_ostc3.h" />
|
||||
<ClInclude Include="..\..\src\ihex.h" />
|
||||
<ClInclude Include="..\..\src\iostream-private.h" />
|
||||
<ClInclude Include="..\..\src\iterator-private.h" />
|
||||
<ClInclude Include="..\..\src\liquivision_lynx.h" />
|
||||
<ClInclude Include="..\..\src\mares_common.h" />
|
||||
<ClInclude Include="..\..\src\mares_darwin.h" />
|
||||
<ClInclude Include="..\..\src\mares_iconhd.h" />
|
||||
<ClInclude Include="..\..\src\mares_nemo.h" />
|
||||
<ClInclude Include="..\..\src\mares_puck.h" />
|
||||
<ClInclude Include="..\..\src\mclean_extreme.h" />
|
||||
<ClInclude Include="..\..\src\oceanic_atom2.h" />
|
||||
<ClInclude Include="..\..\src\oceanic_common.h" />
|
||||
<ClInclude Include="..\..\src\oceanic_veo250.h" />
|
||||
<ClInclude Include="..\..\src\oceanic_vtpro.h" />
|
||||
<ClInclude Include="..\..\src\oceans_s1.h" />
|
||||
<ClInclude Include="..\..\src\oceans_s1_common.h" />
|
||||
<ClInclude Include="..\..\src\packet.h" />
|
||||
<ClInclude Include="..\..\src\parser-private.h" />
|
||||
<ClInclude Include="..\..\src\pelagic_i330r.h" />
|
||||
<ClInclude Include="..\..\src\platform.h" />
|
||||
<ClInclude Include="..\..\src\rbstream.h" />
|
||||
<ClInclude Include="..\..\src\reefnet_sensus.h" />
|
||||
<ClInclude Include="..\..\src\reefnet_sensuspro.h" />
|
||||
<ClInclude Include="..\..\src\reefnet_sensusultra.h" />
|
||||
<ClInclude Include="..\..\src\revision.h" />
|
||||
<ClInclude Include="..\..\src\ringbuffer.h" />
|
||||
<ClInclude Include="..\..\src\seac_screen.h" />
|
||||
<ClInclude Include="..\..\src\shearwater_common.h" />
|
||||
<ClInclude Include="..\..\src\shearwater_petrel.h" />
|
||||
<ClInclude Include="..\..\src\shearwater_predator.h" />
|
||||
<ClInclude Include="..\..\src\socket.h" />
|
||||
<ClInclude Include="..\..\src\sporasub_sp2.h" />
|
||||
<ClInclude Include="..\..\src\suunto_common.h" />
|
||||
<ClInclude Include="..\..\src\suunto_common2.h" />
|
||||
<ClInclude Include="..\..\src\suunto_d9.h" />
|
||||
<ClInclude Include="..\..\src\suunto_eon.h" />
|
||||
<ClInclude Include="..\..\src\suunto_eonsteel.h" />
|
||||
<ClInclude Include="..\..\src\suunto_solution.h" />
|
||||
<ClInclude Include="..\..\src\suunto_vyper.h" />
|
||||
<ClInclude Include="..\..\src\suunto_vyper2.h" />
|
||||
<ClInclude Include="..\..\src\tecdiving_divecomputereu.h" />
|
||||
<ClInclude Include="..\..\src\timer.h" />
|
||||
<ClInclude Include="..\..\src\uwatec_aladin.h" />
|
||||
<ClInclude Include="..\..\src\uwatec_memomouse.h" />
|
||||
<ClInclude Include="..\..\src\uwatec_smart.h" />
|
||||
<ClInclude Include="..\..\src\zeagle_n2ition3.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\src\libdivecomputer.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\src\libdivecomputer.symbols">
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo EXPORTS > "$(OutDir)libdivecomputer.def" && type "%(FullPath)" >> "$(OutDir)libdivecomputer.def"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo EXPORTS > "$(OutDir)libdivecomputer.def" && type "%(FullPath)" >> "$(OutDir)libdivecomputer.def"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(OutDir)libdivecomputer.def;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)libdivecomputer.def;%(Outputs)</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo EXPORTS > "$(OutDir)libdivecomputer.def" && type "%(FullPath)" >> "$(OutDir)libdivecomputer.def"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo EXPORTS > "$(OutDir)libdivecomputer.def" && type "%(FullPath)" >> "$(OutDir)libdivecomputer.def"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(OutDir)libdivecomputer.def;%(Outputs)</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)libdivecomputer.def;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -1,35 +0,0 @@
|
||||
# Atomic Aquatics Cobalt
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", ATTR{idProduct}=="0888", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0888", GROUP="plugdev"
|
||||
|
||||
# Suunto EON Steel
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1493", ATTR{idProduct}=="0030", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1493", ATTRS{idProduct}=="0030", GROUP="plugdev"
|
||||
|
||||
# Suunto EON Core
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1493", ATTR{idProduct}=="0033", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1493", ATTRS{idProduct}=="0033", GROUP="plugdev"
|
||||
|
||||
# Suunto D5
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1493", ATTR{idProduct}=="0035", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1493", ATTRS{idProduct}=="0035", GROUP="plugdev"
|
||||
|
||||
# Suunto EON Steel Black
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="1493", ATTR{idProduct}=="0036", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1493", ATTRS{idProduct}=="0036", GROUP="plugdev"
|
||||
|
||||
# Scubapro G2
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="2e6c", ATTR{idProduct}=="3201", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2e6c", ATTRS{idProduct}=="3201", GROUP="plugdev"
|
||||
|
||||
# Scubapro G2 Console
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="2e6c", ATTR{idProduct}=="3211", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2e6c", ATTRS{idProduct}=="3211", GROUP="plugdev"
|
||||
|
||||
# Scubapro G2 HUD
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="2e6c", ATTR{idProduct}=="4201", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2e6c", ATTRS{idProduct}=="4201", GROUP="plugdev"
|
||||
|
||||
# Scubapro Aladin Square
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="c251", ATTR{idProduct}=="2006", GROUP="plugdev"
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2006", GROUP="plugdev"
|
||||
@ -1,102 +0,0 @@
|
||||
|
||||
COMPUTER CONFIGURATION
|
||||
----------------------
|
||||
|
||||
The computer configuration (including gradient factors, gasses etc) is read and written as a single, fixed size block.
|
||||
|
||||
Config section
|
||||
--------------
|
||||
|
||||
Computer configuration and individual dive configurations both start with identical generic configuration sections of length 0x002d bytes
|
||||
|
||||
0x0000 uint8_t format ZERO
|
||||
0x0001 uint8_t gas[0]_pO2 oxygen content [0, 100] (percent)
|
||||
0x0002 uint8_t gas[0]_pHe helium content [0, 100] (percent)
|
||||
0x0003 uint8_t gas[1]_pO2 oxygen content [0, 100] (percent)
|
||||
0x0004 uint8_t gas[1]_pHe helium content [0, 100] (percent)
|
||||
0x0005 uint8_t gas[2]_pO2 oxygen content [0, 100] (percent)
|
||||
0x0006 uint8_t gas[2]_pHe helium content [0, 100] (percent)
|
||||
0x0007 uint8_t gas[3]_pO2 oxygen content [0, 100] (percent)
|
||||
0x0008 uint8_t gas[3]_pHe helium content [0, 100] (percent)
|
||||
0x0009 uint8_t gas[4]_pO2 oxygen content [0, 100] (percent)
|
||||
0x000a uint8_t gas[4]_pHe helium content [0, 100] (percent)
|
||||
0x000b uint8_t gas[5]_pO2 oxygen content [0, 100] (percent)
|
||||
0x000c uint8_t gas[5]_pHe helium content [0, 100] (percent)
|
||||
0x000d uint8_t gas[6]_pO2 oxygen content [0, 100] (percent)
|
||||
0x000e uint8_t gas[6]_pHe helium content [0, 100] (percent)
|
||||
0x000f uint8_t gas[7]_pO2 oxygen content [0, 100] (percent)
|
||||
0x0010 uint8_t gas[7]_pHe helium content [0, 100] (percent)
|
||||
0x0011 uint8_t gas_mask bitwise mask of enabled gasses
|
||||
0x0012 uint8_t gas_active current gas index
|
||||
0x0013 uint8_t setpoint[0] (centibar)
|
||||
0x0014 uint8_t setpoint[1] (centibar)
|
||||
0x0015 uint8_t setpoint[2] (centibar)
|
||||
0x0016 uint8_t setpoint_mask bitwise mask of enabled setpoints
|
||||
0x0017 uint8_t setpoint_active current setpoint index
|
||||
0x0018 bool metric display units [true: metric, false: imperial]
|
||||
0x0019 uint16_t name dive number
|
||||
0x001b uint8_t laststop_index last stop depth enumeration [0, 3] (metric: 3m, 4m, 5m, 6m imperial: 10ft, 13ft, 16ft, 18ft)
|
||||
0x001c uint16_t Vasc ascent speed limit (millibar/minute)
|
||||
0x001e uint16_t Psurf surface pressure (millibar)
|
||||
0x0020 uint8_t gfs_index predefined gf enumeration [0, 5] (only used in rec mode)
|
||||
0x0021 uint8_t gf lo custom gf low [0, 255] (ignored in rec mode)
|
||||
0x0022 uint8_t gf hi custom gf high [0, 255] (ignored in rec mode)
|
||||
0x0023 uint8_t density_index predefined water density enumeration [0: 1.000, 1: 1.020, 2: 1.030]
|
||||
0x0024 uint16_t ppN2_limit nitrogen partial pressure alert (millibars)
|
||||
0x0026 uint16_t ppO2_limit oxygen partial pressure alert (millibars)
|
||||
0x0028 uint16_t ppO2_bottomlimit oxygen partial pressure alert (millibars)
|
||||
0x002a uint16_t density_limit (units ??)
|
||||
0x002c uint8_t operatingmode operating mode enumeration [0: OC rec, 1: OC tec, 2: CC, 3: Gauge]
|
||||
|
||||
Computer configuration
|
||||
----------------------
|
||||
|
||||
The computer configuration is read and written as a single block of 0x006a bytes formatted thusly:
|
||||
|
||||
<config section as above>
|
||||
0x002d +
|
||||
0x0000 int64_t epoch internal adjustment used to set computer time
|
||||
0x0008 uint16_t inactive_timeout number of seconds of inactivity before the computer turns itself off
|
||||
0x000a uint16_t dive_timeout number of seconds on surface before declaring dive finished
|
||||
0x000c uint16_t log_period number of seconds between dive samples
|
||||
0x000e uint16_t log_timeout not used
|
||||
0x0010 uint16_t brightness_timeout number of seconds of inactivity before the computer dims the screen
|
||||
0x0012 uint8_t brightness dimmed screen brightness [0, 10]
|
||||
0x0013 uint8_t colorscheme computer color scheme enumeration [0, 12]
|
||||
0x0014 uint8_t language computer display language enumeration [0, 1]
|
||||
0x0015 uint8_t batterytype user-defined battery type enumeration [0, 4]
|
||||
0x0016 uint16_t batterytime computer up time since last battery change
|
||||
0x0018 <48 bytes> compass calibration data (cannot be written)
|
||||
0x0048 uint8_t button_sensitivity piezo button sensitivity [0, 9]
|
||||
0x0049 uint8_t orientation screen and button orientation
|
||||
0x004a char[32] diver_name diver name (guaranteed at least one nul terminator)
|
||||
0x006a
|
||||
|
||||
Dive configuration
|
||||
------------------
|
||||
|
||||
Individual dives are read as a single block of 0x002d bytes formatted thusly:
|
||||
|
||||
<config section as above>
|
||||
0x002d +
|
||||
0x0000 uint32_t log_start log start (seconds since midnight 1 jan 2000)
|
||||
0x0004 uint32_t dive_start dive start (seconds since midnight 1 jan 2000)
|
||||
0x0008 uint32_t dive_end dive end (seconds since midnight 1 jan 2000)
|
||||
0x000c uint32_t log_end log end (seconds since midnight 1 jan 2000)
|
||||
0x0010 uint8_t temp_min minimum ambient temperature (degrees centigrade)
|
||||
0x0011 uint8_t temp_max maximum ambient temperature (degrees centigrade)
|
||||
0x0012 uint16_t pO2_min minimum inspired oxygen partial pressure during the dive (millibars)
|
||||
0x0014 uint16_t pO2_max maximum inspired oxygen partial pressure during the dive (millibars)
|
||||
0x0016 uint16_t Pmax maximum ambient pressure during the dive (millibars)
|
||||
0x0018 uint16_t Pav average ambient pressure during the dive (millibars)
|
||||
0x001a uint32_t ISS integral supersaturation of dive mbar*minutes
|
||||
0x001e uint16_t CNS_start CNS at start of dive (percent)
|
||||
0x0020 uint16_t CNS_max maximum CNS encountered during the dive (percent)
|
||||
0x0022 uint16_t OTU OTU dive
|
||||
0x0024 uint16_t tndl shortest NDL calculated during dive (seconds)
|
||||
0x0026 uint32_t tdeco longest decompression time calculated during dive (seconds)
|
||||
0x002a uint8_t ndeco deepest decompression stop index calculated during dive (seconds)
|
||||
0x002b uint16_t tdesat desaturation time calculated at end of dive (seconds)
|
||||
0x002d
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
MANPAGES = \
|
||||
dist_man_MANS = \
|
||||
dc_buffer_append.3 \
|
||||
dc_buffer_free.3 \
|
||||
dc_buffer_get_data.3 \
|
||||
@ -14,10 +14,8 @@ MANPAGES = \
|
||||
dc_datetime_mktime.3 \
|
||||
dc_datetime_now.3 \
|
||||
dc_descriptor_free.3 \
|
||||
dc_descriptor_get_model.3 \
|
||||
dc_descriptor_get_product.3 \
|
||||
dc_descriptor_get_vendor.3 \
|
||||
dc_descriptor_get_transports.3 \
|
||||
dc_descriptor_iterator.3 \
|
||||
dc_device_close.3 \
|
||||
dc_device_foreach.3 \
|
||||
@ -32,41 +30,5 @@ MANPAGES = \
|
||||
dc_parser_get_field.3 \
|
||||
dc_parser_new.3 \
|
||||
dc_parser_samples_foreach.3 \
|
||||
dc_bluetooth_open.3 \
|
||||
dc_bluetooth_iterator_new.3 \
|
||||
dc_bluetooth_device_get_address.3 \
|
||||
dc_bluetooth_device_get_name.3 \
|
||||
dc_bluetooth_addr2str.3 \
|
||||
dc_bluetooth_str2addr.3 \
|
||||
dc_bluetooth_device_free.3 \
|
||||
dc_usbhid_open.3 \
|
||||
dc_usbhid_device_get_pid.3 \
|
||||
dc_usbhid_device_get_vid.3 \
|
||||
dc_usbhid_iterator_new.3 \
|
||||
dc_usbhid_device_free.3 \
|
||||
dc_serial_open.3 \
|
||||
dc_serial_device_get_name.3 \
|
||||
dc_serial_iterator_new.3 \
|
||||
dc_serial_device_free.3 \
|
||||
dc_irda_open.3 \
|
||||
dc_irda_device_get_name.3 \
|
||||
dc_irda_device_get_address.3 \
|
||||
dc_irda_iterator_new.3 \
|
||||
dc_irda_device_free.3 \
|
||||
dc_iostream_close.3 \
|
||||
libdivecomputer.3
|
||||
|
||||
HTMLPAGES = $(MANPAGES:%=%.html)
|
||||
|
||||
dist_man_MANS = $(MANPAGES)
|
||||
|
||||
if HAVE_MANDOC
|
||||
doc_DATA = $(HTMLPAGES)
|
||||
endif
|
||||
|
||||
SUFFIXES = .3 .3.html
|
||||
|
||||
.3.3.html:
|
||||
$(AM_V_GEN) $(MANDOC) -Thtml -Ostyle=mandoc.css,man=%N.%S.html $< > $@
|
||||
|
||||
CLEANFILES = $(HTMLPAGES)
|
||||
dc_parser_set_data.3 \
|
||||
libdivecomputer.3
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_ADDR2STR 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_addr2str
|
||||
.Nd Convert a bluetooth address to a string.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft "const char*"
|
||||
.Fo dc_bluetooth_addr2str
|
||||
.Fa "dc_bluetooth_address_t address"
|
||||
.Fa "char *str"
|
||||
.Fa "size_t size"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Convert a bluetooth address to a string.
|
||||
.Pp
|
||||
The bluetooth address is formatted as XX:XX:XX:XX:XX:XX, where each XX is a
|
||||
hexadecimal number specifying an octet of the 48-bit address.
|
||||
The minimum size for the buffer is
|
||||
.Dv DC_BLUETOOTH_SIZE
|
||||
bytes.
|
||||
.Pp
|
||||
The reverse can be done with
|
||||
.Xr dc_bluetooth_str2addr 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the bluetooth address represented as a string.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_bluetooth_str2addr 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,52 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_DEVICE_FREE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_device_free
|
||||
.Nd Destroy the bluetooth device and free all resources.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft void
|
||||
.Fo dc_bluetooth_device_free
|
||||
.Fa "dc_bluetooth_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Destroy the bluetooth device and free all resources.
|
||||
The bluetooth
|
||||
.Fa device
|
||||
usually found by searching through
|
||||
.Xr dc_bluetooth_iterator_new 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_bluetooth_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,69 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_DEVICE_GET_ADDRESS 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_device_get_address
|
||||
.Nd Get the address of a bluetooth device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft "dc_bluetooth_address_t"
|
||||
.Fo dc_bluetooth_device_get_address
|
||||
.Fa "dc_bluetooth_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the bluetooth device address of given bluetooth
|
||||
.Fa device .
|
||||
Required when opening transport communication with
|
||||
.Xr dc_bluetooth_open 3 .
|
||||
Requires a valid
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_bluetooth_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_bluetooth_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the bluetooth address of
|
||||
.Fa device
|
||||
as
|
||||
.Ft dc_bluetooth_address_t
|
||||
which is a 64bit integer holding the bluetooth address.
|
||||
|
||||
The address can be formatted as a string by using
|
||||
.Xr dc_bluetooth_addr2str 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_bluetooth_open 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_device_get_name 3 ,
|
||||
.Xr dc_bluetooth_addr2str 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,61 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_DEVICE_GET_NAME 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_device_get_name
|
||||
.Nd Get the name of a bluetooth device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft "const char *"
|
||||
.Fo dc_bluetooth_device_get_name
|
||||
.Fa "dc_bluetooth_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the name of given bluetooth
|
||||
.Fa device .
|
||||
Used for displaying.
|
||||
Requires a valid
|
||||
.Fa bluetooth_device
|
||||
of type
|
||||
.Ft dc_bluetooth_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_bluetooth_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the bluetooth device of
|
||||
.Fa device .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_bluetooth_open 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_device_get_address 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,102 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_ITERATOR_NEW 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_iterator_new
|
||||
.Nd Create an iterator to enumerate the bluetooth devices.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_bluetooth_iterator_new
|
||||
.Fa "dc_iterator_t **iterator"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Iterates through the available bluetooth devices which matches the given
|
||||
.Fa descriptor .
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Pp
|
||||
On returning
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the
|
||||
.Fa iterator
|
||||
will be set to an
|
||||
.Ft dc_iterator_t
|
||||
which can be used to iterate the available bluetooth devices using
|
||||
.Xr dc_iterator_next 3 .
|
||||
.Pp
|
||||
The value type of the iterator is of type
|
||||
.Ft dc_bluetooth_device_t .
|
||||
This value can be used in functions to extract information about this specific bluetooth device, namely
|
||||
.Xr dc_bluetooth_device_get_name 3
|
||||
and
|
||||
.Xr dc_bluetooth_device_get_address 3 .
|
||||
When done the bluetooth device needs to be freed with
|
||||
.Xr dc_bluetooth_device_free 3 .
|
||||
.Pp
|
||||
After iterating the
|
||||
.Fa iterator
|
||||
needs to be freed using
|
||||
.Xr dc_iterator_free 3 .
|
||||
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success, or another
|
||||
.Ft dc_status_t
|
||||
code on failure.
|
||||
|
||||
On
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the returned
|
||||
.Fa iterator
|
||||
needs to be freed when done using
|
||||
.Xr dc_iterator_free 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 ,
|
||||
.Xr dc_serial_iterator_new 3 ,
|
||||
.Xr dc_irda_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_device_get_name 3 ,
|
||||
.Xr dc_bluetooth_device_get_address 3 ,
|
||||
.Xr dc_bluetooth_device_free 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,87 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_OPEN 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_open
|
||||
.Nd Opens an iostream for a bluetooth device
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_bluetooth_open
|
||||
.Fa "dc_iostream_t **iostream"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_bluetooth_address_t address"
|
||||
.Fa "unsigned int port"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Opens an iostream for a bluetooth device.
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3 ,
|
||||
a 48-bit bluetooth
|
||||
.Fa address
|
||||
given by
|
||||
.Xr dc_bluetooth_iterator_new 3
|
||||
together with
|
||||
.Xr dc_bluetooth_device_get_address 3
|
||||
or
|
||||
.Xr dc_bluetooth_str2addr 3
|
||||
and a bluetooth rfcomm
|
||||
.Fa port
|
||||
number (use 0 for autodetection).
|
||||
.Pp
|
||||
Upon returning
|
||||
.Dv DC_STATUS_SUCCESS ,
|
||||
the
|
||||
.Fa iostream
|
||||
pointer must be freed with
|
||||
.Xr dc_iostream_close 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success or one of several error values on error.
|
||||
On success, the
|
||||
.Fa iostream
|
||||
pointer is filled in with an open handle.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_iostream_close 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_device_get_address 3 ,
|
||||
.Xr dc_bluetooth_str2addr 3 ,
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,58 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_BLUETOOTH_STR2ADDR 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_bluetooth_str2addr
|
||||
.Nd Convert a string to a bluetooth address.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/bluetooth.h
|
||||
.Ft "dc_bluetooth_address_t"
|
||||
.Fo dc_bluetooth_addr2str
|
||||
.Fa "const char *address"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Convert a string to a bluetooth address.
|
||||
.Pp
|
||||
The string
|
||||
.Fa address
|
||||
is expected to be in the format XX:XX:XX:XX:XX:XX,
|
||||
where each XX is a hexadecimal number specifying an octet of the 48-bit address.
|
||||
.Pp
|
||||
The reverse can be done with
|
||||
.Xr dc_bluetooth_addr2str 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the bluetooth address represented as a 48-bit number.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_bluetooth_addr2str 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -82,7 +82,7 @@ is
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_datetime_localtime 3 ,
|
||||
.Xr dc_datetime_mktime 3 ,
|
||||
.Xr dc_datetime_now 3
|
||||
.Xr dc_datetime_new 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -82,7 +82,7 @@ is
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_datetime_gmtime 3 ,
|
||||
.Xr dc_datetime_mktime 3 ,
|
||||
.Xr dc_datetime_now 3
|
||||
.Xr dc_datetime_new 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -47,7 +47,7 @@ may not sanely be converted.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_datetime_gmtime 3 ,
|
||||
.Xr dc_datetime_localtime 3 ,
|
||||
.Xr dc_datetime_now 3
|
||||
.Xr dc_datetime_new 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -1,72 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_DESCRIPTOR_GET_TRANSPORTS 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_descriptor_get_transports
|
||||
.Nd Gets the transports supported by the given descriptor.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/descriptor.h
|
||||
.Ft "unsigned int"
|
||||
.Fo dc_descriptor_get_transports
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Gets the transports supported by the given
|
||||
.Fa descriptor .
|
||||
The
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns a union (bitwise OR) of the transports supported by the given
|
||||
.Fa descriptor .
|
||||
.Pp
|
||||
The result is combination of
|
||||
.Dv DC_TRANSPORT_USB ,
|
||||
.Dv DC_TRANSPORT_USBHID ,
|
||||
.Dv DC_TRANSPORT_BLE ,
|
||||
.Dv DC_TRANSPORT_BLUETOOTH ,
|
||||
.Dv DC_TRANSPORT_SERIAL ,
|
||||
.Dv DC_TRANSPORT_IRDA
|
||||
.Pp
|
||||
To determine if a specific transport is supported use the following code
|
||||
.Bd -literal -offset indent
|
||||
unsigned int transports = dc_descriptor_get_transports(descriptor);
|
||||
if(transports & DC_TRANSPORT_USBHID) {
|
||||
// Device supports USB HID as transport
|
||||
}
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -53,7 +53,7 @@ with
|
||||
Each dive invokes
|
||||
.Fa callback
|
||||
with the dive data, which should be parsed with
|
||||
.Xr dc_parser_new 3 ,
|
||||
.Xr dc_parser_set_data 3 ,
|
||||
and the binary fingerprint of the dive.
|
||||
The fingerprint can be used to record the newest dive and stop
|
||||
processing (on subsequent invocations) when the same dive fingerprint is
|
||||
@ -72,7 +72,7 @@ If
|
||||
returns zero, this will not be reflected in the return value (usually
|
||||
.Dv DC_STATUS_SUCCESS ) .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_parser_new 3
|
||||
.Xr dc_parser_set_data 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dd January 5, 2017
|
||||
.Dt DC_DEVICE_OPEN 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -33,7 +33,7 @@
|
||||
.Fa "dc_device_t **device"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fa "dc_iostream_t *iostream"
|
||||
.Fa "const char *name"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Open a dive computer device for processing.
|
||||
@ -45,14 +45,19 @@ a dive computer
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 ,
|
||||
and a
|
||||
.Fa iostream
|
||||
opened with a transport specific open function like
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
and a platform-specific device
|
||||
.Fa name
|
||||
.Po
|
||||
such as
|
||||
.Pa /dev/ttyUSBx
|
||||
on Linux,
|
||||
.Pa /dev/tty.xxx
|
||||
on Mac OS X,
|
||||
.Pa /dev/ttyUx
|
||||
on the BSDs,
|
||||
or
|
||||
.Xr dc_bluetooth_open 3
|
||||
.Pa COMx
|
||||
on Microsoft Windows
|
||||
.Pc .
|
||||
.Pp
|
||||
Upon returning
|
||||
@ -78,10 +83,6 @@ The
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
The manpages were written by
|
||||
.An Kristaps Dzonsons ,
|
||||
.Mt kristaps@bsd.lv .
|
||||
and
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl
|
||||
@ -1,60 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IOSTREAM_CLOSE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_iostream_close
|
||||
.Nd Close the I/O stream and free all resources.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/iostream.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_iostream_close
|
||||
.Fa "dc_iostream_t *iostream"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Close the I/O stream and free all resources.
|
||||
Accepts the
|
||||
.Fa iostream
|
||||
to close and free.
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success, or another
|
||||
.Ft dc_status_t
|
||||
code on failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_bluetooth_open 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,52 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IRDA_DEVICE_FREE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_irda_device_free
|
||||
.Nd Destroy the irda device and free all resources.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/irda.h
|
||||
.Ft void
|
||||
.Fo dc_irda_device_free
|
||||
.Fa "dc_irda_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Destroy the irda device and free all resources.
|
||||
The irda
|
||||
.Fa device
|
||||
usually found by searching through
|
||||
.Xr dc_irda_iterator_new 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_irda_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,59 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IRDA_DEVICE_GET_ADDRESS 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_irda_device_get_address
|
||||
.Nd Get the address of the IrDA device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/irda.h
|
||||
.Ft "unsigned int"
|
||||
.Fo dc_irda_device_get_address
|
||||
.Fa "dc_irda_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the address of the IrDA device. Return value used for opening a IrDA device using
|
||||
.Xr dc_irda_open 3 .
|
||||
Requires a valid irda
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_irda_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_irda_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the IrDA address of given IrDA
|
||||
.Fa device
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_irda_device_get_name 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,58 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IRDA_DEVICE_GET_NAME 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_irda_device_get_name
|
||||
.Nd Get the address of the IrDA device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/irda.h
|
||||
.Ft "const char *"
|
||||
.Fo dc_irda_device_get_name
|
||||
.Fa "dc_irda_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the name of the IrDA device. Used for displaying.
|
||||
Requires a valid irda
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_irda_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_irda_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the IrDA name of given
|
||||
.Fa irda_device
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_irda_device_get_address 3 .
|
||||
.Xr dc_irda_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,102 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IRDA_ITERATOR_NEW 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_irda_iterator_new
|
||||
.Nd Create an iterator to enumerate the IrDA devices.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/irda.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_irda_iterator_new
|
||||
.Fa "dc_iterator_t **iterator"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Iterates through the available IrDA devices which matches the given
|
||||
.Fa descriptor .
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Pp
|
||||
On returning
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the
|
||||
.Fa iterator
|
||||
will be set to an
|
||||
.Ft dc_iterator_t
|
||||
which can be used to iterate the available IrDA devices using
|
||||
.Xr dc_iterator_next 3 .
|
||||
.Pp
|
||||
The value type of the iterator is of type
|
||||
.Ft dc_irda_device_t .
|
||||
This value can be used in functions to extract information about this specific IrDA device, namely
|
||||
.Xr dc_irda_device_get_name 3
|
||||
and
|
||||
.Xr dc_irda_device_get_address 3 .
|
||||
When done the IrDA device needs to be freed with
|
||||
.Xr dc_irda_device_free 3 .
|
||||
.Pp
|
||||
After iterating the
|
||||
.Fa iterator
|
||||
needs to be freed using
|
||||
.Xr dc_iterator_free 3 .
|
||||
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success, or another
|
||||
.Ft dc_status_t
|
||||
code on failure.
|
||||
|
||||
On
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the returned
|
||||
.Fa iterator
|
||||
needs to be freed when done using
|
||||
.Xr dc_iterator_free 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 ,
|
||||
.Xr dc_serial_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_irda_device_get_name 3 ,
|
||||
.Xr dc_irda_device_get_address 3 ,
|
||||
.Xr dc_irda_device_free 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,85 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_IRDA_OPEN 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_irda_open
|
||||
.Nd Opens an iostream for a IrDA device
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/irda.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_irda_open
|
||||
.Fa "dc_iostream_t **iostream"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "unsigned int address"
|
||||
.Fa "unsigned int lsap"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Opens an iostream for a IrDA (Infra Red) device.
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3 ,
|
||||
.Fa address
|
||||
given through
|
||||
.Xr dc_irda_iterator_new 3
|
||||
together with
|
||||
.Xr dc_irda_device_get_address 3
|
||||
, the last argument
|
||||
.Fa lsap
|
||||
is a port number used during the communication. Currently only Uwatec computers use IrDA comminication and for those the
|
||||
.Fa lsap
|
||||
can be hardcoded to 1
|
||||
.Pp
|
||||
Upon returning
|
||||
.Dv DC_STATUS_SUCCESS ,
|
||||
the
|
||||
.Fa iostream
|
||||
pointer must be freed with
|
||||
.Xr dc_iostream_close 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success or one of several error values on error.
|
||||
On success, the
|
||||
.Fa iostream
|
||||
pointer is filled in with an open handle.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_iostream_close 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_bluetooth_open 3 ,
|
||||
.Xr dc_irda_iterator_new 3 ,
|
||||
.Xr dc_irda_device_get_address 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -37,7 +37,7 @@
|
||||
Extract the date and time of a dive,
|
||||
.Fa parser ,
|
||||
previously initialised with
|
||||
.Xr dc_parser_new 3 .
|
||||
.Xr dc_parser_set_data 3 .
|
||||
This returns the broken-down time-stamp of the dive in the local time of
|
||||
the dive.
|
||||
.Pp
|
||||
@ -57,7 +57,7 @@ messages on further failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_datetime_gmtime 3 ,
|
||||
.Xr dc_datetime_localtime 3 ,
|
||||
.Xr dc_parser_new 3
|
||||
.Xr dc_parser_set_data 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
Extract a field from a dive,
|
||||
.Fa parser ,
|
||||
previously initialised with
|
||||
.Xr dc_parser_new 3 .
|
||||
.Xr dc_parser_set_data 3 .
|
||||
The
|
||||
.Fa value
|
||||
field type depends upon the
|
||||
@ -149,7 +149,7 @@ the tank volume units as
|
||||
or
|
||||
.Dv DC_TANKVOLUME_METRIC ;
|
||||
.Va volume ,
|
||||
the tank volume in litres or zero if the tank is
|
||||
the tank volume in bar or zero if the tank is
|
||||
.Dv DC_TANKVOLUME_NONE ;
|
||||
.Va workpressure ,
|
||||
the work pressure in bar or zero if
|
||||
@ -172,10 +172,8 @@ for gauge (i.e., running as a record and not computing, say,
|
||||
decompression events),
|
||||
.Dv DC_DIVEMODE_OC
|
||||
for standard open-circuit diving, and
|
||||
.Dv DC_DIVEMODE_CCR
|
||||
and
|
||||
.Dv DC_DIVEMODE_SCR
|
||||
for respectively closed circuit and semi closed circuit
|
||||
.Dv DC_DIVEMODE_CC
|
||||
for closed-circuit
|
||||
.Dq rebreather
|
||||
diving.
|
||||
.El
|
||||
@ -187,7 +185,7 @@ if the field was retrieved,
|
||||
if the field is not supported by the device, or other error messages on
|
||||
further failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_parser_new 3
|
||||
.Xr dc_parser_set_data 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -39,6 +39,8 @@
|
||||
.Fa "dc_parser_t **parser"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fa "unsigned int devtime"
|
||||
.Fa "dc_ticks_t systime"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Creates a parser for a single dive extracted from the dive computer with
|
||||
@ -53,6 +55,10 @@ parameter; and
|
||||
.Nm dc_parser_new2 ,
|
||||
which is given device values (model, etc.) directly.
|
||||
.Pp
|
||||
After filling in the
|
||||
.Fa parser
|
||||
parameter, one usually sets parser data with
|
||||
.Xr dc_parser_set_data 3 .
|
||||
The pointer must later be freed with
|
||||
.Xr dc_parser_destroy 3 .
|
||||
.Sh RETURN VALUES
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
.Ft "typedef void"
|
||||
.Fo "(*dc_sample_callback_t)"
|
||||
.Fa "dc_sample_type_t type"
|
||||
.Fa "const dc_sample_value_t *value"
|
||||
.Fa "dc_sample_value_t value"
|
||||
.Fa "void *userdata"
|
||||
.Fc
|
||||
.Ft dc_status_t
|
||||
@ -42,7 +42,7 @@
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Extract the samples taken during a dive as previously initialised with
|
||||
.Xr dc_parser_new 3 .
|
||||
.Xr dc_parser_set_data 3 .
|
||||
Each sample is passed to
|
||||
.Fa callback
|
||||
with the
|
||||
@ -63,7 +63,7 @@ closed.
|
||||
The following sample types may be raised:
|
||||
.Bl -tag -width Ds
|
||||
.It Dv DC_SAMPLE_TIME
|
||||
The time of the sample taken in milliseconds after the dive began.
|
||||
The time of the sample taken in seconds after the dive began.
|
||||
Set in the
|
||||
.Fa time
|
||||
field.
|
||||
@ -126,7 +126,7 @@ Sets the
|
||||
.Fa rbt
|
||||
field.
|
||||
.It Dv DC_SAMPLE_HEARTBEAT
|
||||
The diver's heartbeat in beats per minute.
|
||||
The diver's heartbeet in beats per minute.
|
||||
Sets the
|
||||
.Fa heartbeat
|
||||
field.
|
||||
@ -184,7 +184,7 @@ Returns
|
||||
.Dv DC_STATUS_OK
|
||||
on success and another code on failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_parser_new 3
|
||||
.Xr dc_parser_set_data 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2018 Kristaps Dzonsons <kristaps@bsd.lv>
|
||||
.\" Copyright (C) 2017 Kristaps Dzonsons <kristaps@bsd.lv>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
@ -19,28 +18,42 @@
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd August 19, 2018
|
||||
.Dt DC_DESCRIPTOR_GET_MODEL 3
|
||||
.Dd January 5, 2017
|
||||
.Dt DC_PARSER_SET_DATA 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_descriptor_get_model
|
||||
.Nd get the model of a dive computer descriptor
|
||||
.Nm dc_parser_set_data
|
||||
.Nd assigns parse data to a dive parser
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/descriptor.h
|
||||
.Ft "unsigned int"
|
||||
.Fo dc_descriptor_get_model
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.In libdivecomputer/parser.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_parser_set_data
|
||||
.Fa "dc_parser_t *parser"
|
||||
.Fa "const unsigned char *data"
|
||||
.Fa "unsigned int size"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Gets the model number of a dive computer descriptor or 0 if none was
|
||||
defined for the computer.
|
||||
0 is also a valid model number.
|
||||
Assigns the binary sequence
|
||||
.Fa data
|
||||
of length
|
||||
.Fa size
|
||||
bytes to
|
||||
.Fa parser ,
|
||||
which was created with
|
||||
.Xr dc_parser_new 3 .
|
||||
How the data is parsed depends upon the values provided to
|
||||
.Xr dc_parser_new 3 .
|
||||
The data usually comes from the callback assigned to
|
||||
.Xr dc_device_foreach 3 .
|
||||
.Sh RETURN VALUES
|
||||
This returns the model number or 0 if none exists.
|
||||
Returns
|
||||
.Dv DC_STATUS_OK
|
||||
on success and another code on failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_descriptor_iterator 3
|
||||
.Xr dc_device_foreach 3 ,
|
||||
.Xr dc_parser_new 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
@ -1,52 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_SERIAL_DEVICE_FREE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_serial_device_free
|
||||
.Nd Destroy the serial device and free all resources.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/serial.h
|
||||
.Ft void
|
||||
.Fo dc_serial_device_free
|
||||
.Fa "dc_serial_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Destroy the serial device and free all resources.
|
||||
The serial
|
||||
.Fa device
|
||||
usually found by searching through
|
||||
.Xr dc_serial_iterator_new 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_serial_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,59 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_SERIAL_DEVICE_GET_NAME 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_serial_device_get_name
|
||||
.Nd Get the device name of the serial device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/serial.h
|
||||
.Ft "const char *"
|
||||
.Fo dc_serial_device_get_name
|
||||
.Fa "dc_serial_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the device node of the serial device. Used when opening serial transport with
|
||||
.Xr dc_serial_open 3 .
|
||||
Requires a valid serial
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_serial_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_serial_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the device name of given serial
|
||||
.Fa device
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_serial_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,99 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_SERIAL_ITERATOR_NEW 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_serial_iterator_new
|
||||
.Nd Create an iterator to enumerate the serial devices.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/serial.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_serial_iterator_new
|
||||
.Fa "dc_iterator_t **iterator"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Iterates through the available serial devices matching the given
|
||||
.Fa descriptor .
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Pp
|
||||
On returning
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the
|
||||
.Fa iterator
|
||||
will be set to an
|
||||
.Ft dc_iterator_t
|
||||
which can be used to iterate the available serial devices using
|
||||
.Xr dc_iterator_next 3 .
|
||||
.Pp
|
||||
The value type of the iterator is of type
|
||||
.Ft dc_serial_device_t .
|
||||
This value can be used in functions to extract information about this specific serial device, namely
|
||||
.Xr dc_serial_device_get_name 3
|
||||
When done the serial device needs to be freed with
|
||||
.Xr dc_serial_device_free 3 .
|
||||
.Pp
|
||||
After iterating the
|
||||
.Fa iterator
|
||||
needs to be freed using
|
||||
.Xr dc_iterator_free 3 .
|
||||
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success, or another
|
||||
.Ft dc_status_t
|
||||
code on failure.
|
||||
|
||||
On
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the returned
|
||||
.Fa iterator
|
||||
needs to be freed when done using
|
||||
.Xr dc_iterator_free 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 ,
|
||||
.Xr dc_irda_iterator_new 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_serial_device_get_name 3 ,
|
||||
.Xr dc_serial_device_free 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,80 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_SERIAL_OPEN 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_serial_open
|
||||
.Nd Opens an iostream for a serial device
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/serial.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_serial_open
|
||||
.Fa "dc_iostream_t **iostream"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "const char *name"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Opens an iostream for a serial device.
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa name
|
||||
device name, usually found through
|
||||
.Xr dc_serial_iterator_new 3
|
||||
with
|
||||
.Xr dc_serial_device_get_name 3 .
|
||||
.Pp
|
||||
Upon returning
|
||||
.Dv DC_STATUS_SUCCESS ,
|
||||
the
|
||||
.Fa iostream
|
||||
pointer must be freed with
|
||||
.Xr dc_iostream_close 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success or one of several error values on error.
|
||||
On success, the
|
||||
.Fa iostream
|
||||
pointer is filled in with an open handle.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_iostream_close 3 ,
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_bluetooth_open 3 ,
|
||||
.Xr dc_serial_iterator_new 3 ,
|
||||
.Xr dc_serial_device_get_name 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,52 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_USBHID_DEVICE_FREE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_usbhid_device_free
|
||||
.Nd Destroy the USB HID device and free all resources.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/usbhid.h
|
||||
.Ft void
|
||||
.Fo dc_usbhid_device_free
|
||||
.Fa "dc_usbhid_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Destroy the USB HID device and free all resources.
|
||||
The usbhid
|
||||
.Fa device
|
||||
usually found by searching through
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,58 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_USBHID_DEVICE_GET_PID 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_usbhid_device_get_pid
|
||||
.Nd Get the product id (PID) of the USB HID device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/usbhid.h
|
||||
.Ft "unsigned int"
|
||||
.Fo dc_usbhid_device_get_pid
|
||||
.Fa "dc_usbhid_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the product id (PID) of the USB HID device. Used for displaying.
|
||||
Requires a valid usbhid
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_usbhid_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the product id (PID) of given
|
||||
.Fa usbhid_device
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_usbhid_device_get_vid 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,58 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_USBHID_DEVICE_GET_VID 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_usbhid_device_get_vid
|
||||
.Nd Get the vendor id (VID) of the USB HID device.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/usbhid.h
|
||||
.Ft "unsigned int"
|
||||
.Fo dc_usbhid_device_get_vid
|
||||
.Fa "dc_usbhid_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Get the vendor id (VID) of the USB HID device. Used for displaying.
|
||||
Requires a valid usbhid
|
||||
.Fa device
|
||||
of type
|
||||
.Ft dc_usbhid_device_t
|
||||
which can be retrieved using
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns the vendor id (VID) of given usbhid
|
||||
.Fa device
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_usbhid_device_get_vid 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,101 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_USBHID_ITERATOR_NEW 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_usbhid_iterator_new
|
||||
.Nd Create an iterator to enumerate the USB HID devices.
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/usbhid.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_usbhid_iterator_new
|
||||
.Fa "dc_iterator_t **iterator"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_descriptor_t *descriptor"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Iterates through the available USB HID devices matching the given
|
||||
.Fa descriptor .
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa descriptor
|
||||
usually found by searching through
|
||||
.Xr dc_descriptor_iterator 3 .
|
||||
.Pp
|
||||
On returning
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the
|
||||
.Fa iterator
|
||||
will be set to an
|
||||
.Ft dc_iterator_t
|
||||
which can be used to iterate the available USB HID devices using
|
||||
.Xr dc_iterator_next 3 .
|
||||
.Pp
|
||||
The value type of the iterator is of type
|
||||
.Ft dc_usbhid_device_t .
|
||||
This value can be used in functions to extract information about this specific USB HID device, namely
|
||||
.Xr dc_usbhid_device_get_pid 3
|
||||
and
|
||||
.Xr dc_usbhid_device_get_vid 3 .
|
||||
When done the USB HID device needs to be freed with
|
||||
.Xr dc_usbhid_device_free 3 .
|
||||
.Pp
|
||||
After iterating the
|
||||
.Fa iterator
|
||||
needs to be freed using
|
||||
.Xr dc_iterator_free 3 .
|
||||
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success, or another
|
||||
.Ft dc_status_t
|
||||
code on failure.
|
||||
|
||||
On
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
the returned
|
||||
.Fa iterator
|
||||
needs to be freed when done using
|
||||
.Xr dc_iterator_free 3 .
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_bluetooth_iterator_new 3 ,
|
||||
.Xr dc_serial_iterator_new 3 ,
|
||||
.Xr dc_irda_iterator_new 3 ,
|
||||
.Xr dc_usbhid_device_get_pid 3 ,
|
||||
.Xr dc_usbhid_device_get_vid 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -1,77 +0,0 @@
|
||||
.\"
|
||||
.\" libdivecomputer
|
||||
.\"
|
||||
.\" Copyright (C) 2020 Vincent Hagen <vinnie@script4web.nl>
|
||||
.\"
|
||||
.\" This library is free software; you can redistribute it and/or
|
||||
.\" modify it under the terms of the GNU Lesser General Public
|
||||
.\" License as published by the Free Software Foundation; either
|
||||
.\" version 2.1 of the License, or (at your option) any later version.
|
||||
.\"
|
||||
.\" This library is distributed in the hope that it will be useful,
|
||||
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" Lesser General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU Lesser General Public
|
||||
.\" License along with this library; if not, write to the Free Software
|
||||
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
.\" MA 02110-1301 USA
|
||||
.\"
|
||||
.Dd June 5, 2020
|
||||
.Dt DC_USBHID_OPEN 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm dc_usbhid_open
|
||||
.Nd Opens an iostream for a USB HID device
|
||||
.Sh LIBRARY
|
||||
.Lb libdivecomputer
|
||||
.Sh SYNOPSIS
|
||||
.In libdivecomputer/usbhid.h
|
||||
.Ft dc_status_t
|
||||
.Fo dc_usbhid_open
|
||||
.Fa "dc_iostream_t **iostream"
|
||||
.Fa "dc_context_t *context"
|
||||
.Fa "dc_usbhid_device_t *device"
|
||||
.Fc
|
||||
.Sh DESCRIPTION
|
||||
Opens an iostream for a USB HID device.
|
||||
Accepts a
|
||||
.Fa context
|
||||
opened with
|
||||
.Xr dc_context_new 3
|
||||
and a
|
||||
.Fa device
|
||||
usually found by searching through
|
||||
.Xr dc_usbhid_iterator_new 3 .
|
||||
.Pp
|
||||
Upon returning
|
||||
.Dv DC_STATUS_SUCCESS ,
|
||||
the
|
||||
.Fa iostream
|
||||
pointer must be freed with
|
||||
.Xr dc_iostream_close 3 .
|
||||
.Sh RETURN VALUES
|
||||
Returns
|
||||
.Dv DC_STATUS_SUCCESS
|
||||
on success or one of several error values on error.
|
||||
On success, the
|
||||
.Fa iostream
|
||||
pointer is filled in with an open handle.
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_usbhid_iterator_new 3 ,
|
||||
.Xr dc_iostream_close 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_irda_open 3 ,
|
||||
.Xr dc_bluetooth_open 3 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
library was written by
|
||||
.An Jef Driesen ,
|
||||
.Mt jef@libdivecomputer.org .
|
||||
.br
|
||||
This manpage is written by
|
||||
.An Vincent Hagen ,
|
||||
.Mt vinnie@script4web.nl .
|
||||
@ -41,8 +41,9 @@ these steps:
|
||||
.Bl -enum
|
||||
.It
|
||||
Create a new context with
|
||||
.Xr dc_context_new 3
|
||||
to initialize the library. Logging can be controlled with
|
||||
.Xr dc_context_new 3 .
|
||||
This supplies a parse context: logging, error handling, etc.
|
||||
Override the values with
|
||||
.Xr dc_context_set_logfunc 3
|
||||
and
|
||||
.Xr dc_context_set_loglevel 3 .
|
||||
@ -51,28 +52,11 @@ Find a descriptor for their dive computer by iterating through
|
||||
.Xr dc_descriptor_iterator 3
|
||||
and searching by name, vendor, or product family.
|
||||
.It
|
||||
Find the transport to use for the communication. To determine the supported transports use
|
||||
.Xr dc_descriptor_get_transports 3 .
|
||||
.It
|
||||
Find the hardware device corresponding to the connected dive computer by iterating through
|
||||
.Xr dc_usbhid_iterator_new 3 ,
|
||||
.Xr dc_serial_iterator_new 3 ,
|
||||
.Xr dc_irda_iterator_new 3
|
||||
or
|
||||
.Xr dc_bluetooth_iterator_new 3 .
|
||||
.It
|
||||
Open the transport communcations with
|
||||
.Xr dc_usbhid_open 3 ,
|
||||
.Xr dc_serial_open 3 ,
|
||||
.Xr dc_irda_open 3
|
||||
or
|
||||
.Xr dc_bluetooth_open 3 .
|
||||
.It
|
||||
Open a connection to the dive computer with
|
||||
.Xr dc_device_open 3 .
|
||||
Optionally use
|
||||
Open the hardware device to which the dive computer is connected with
|
||||
.Xr dc_device_open 3 ,
|
||||
then invoke
|
||||
.Xr dc_device_set_events 3 ,
|
||||
.Xr dc_device_set_fingerprint 3
|
||||
.Xr dc_device_set_fingerprint 3 ,
|
||||
and
|
||||
.Xr dc_device_set_cancel 3
|
||||
to set the logging events, last-seen fingerprint, and cancel routine,
|
||||
@ -82,12 +66,13 @@ Iterate over all dives with
|
||||
.Xr dc_device_foreach 3 .
|
||||
.It
|
||||
For each iterated dive, create a new parser with
|
||||
.Xr dc_parser_new 3 .
|
||||
.Xr dc_parser_new 3
|
||||
and set the parsed data with
|
||||
.Xr dc_parser_set_data 3 .
|
||||
.It
|
||||
Get attributes of the parsed dive with
|
||||
.Xr dc_parser_get_field 3 .
|
||||
.It
|
||||
Iterate through the dive's samples (recorded data) with
|
||||
.Xr dc_parser_get_field 3 ,
|
||||
then iterate through the dive's samples (recorded data) with
|
||||
.Xr dc_parser_samples_foreach 3 .
|
||||
.El
|
||||
.Sh RETURN VALUES
|
||||
@ -144,10 +129,7 @@ return
|
||||
.Dv DC_STATUS_SUCCESS .
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr dc_context_new 3 ,
|
||||
.Xr dc_descriptor_iterator 3
|
||||
.Xr dc_device_open 3
|
||||
.Xr dc_parser_new 3
|
||||
.Xr dc_buffer_new 3
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Lb libdivecomputer
|
||||
|
||||
@ -12,13 +12,11 @@ dctool_SOURCES = \
|
||||
dctool_help.c \
|
||||
dctool_version.c \
|
||||
dctool_list.c \
|
||||
dctool_scan.c \
|
||||
dctool_download.c \
|
||||
dctool_dump.c \
|
||||
dctool_parse.c \
|
||||
dctool_read.c \
|
||||
dctool_write.c \
|
||||
dctool_timesync.c \
|
||||
dctool_fwupdate.c \
|
||||
output.h \
|
||||
output-private.h \
|
||||
|
||||
@ -19,7 +19,6 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@ -28,12 +27,6 @@
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#include <libdivecomputer/serial.h>
|
||||
#include <libdivecomputer/bluetooth.h>
|
||||
#include <libdivecomputer/irda.h>
|
||||
#include <libdivecomputer/usb.h>
|
||||
#include <libdivecomputer/usbhid.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "utils.h"
|
||||
|
||||
@ -51,11 +44,6 @@ typedef struct backend_table_t {
|
||||
unsigned int model;
|
||||
} backend_table_t;
|
||||
|
||||
typedef struct transport_table_t {
|
||||
const char *name;
|
||||
dc_transport_t type;
|
||||
} transport_table_t;
|
||||
|
||||
static const backend_table_t g_backends[] = {
|
||||
{"solution", DC_FAMILY_SUUNTO_SOLUTION, 0},
|
||||
{"eon", DC_FAMILY_SUUNTO_EON, 0},
|
||||
@ -66,13 +54,13 @@ static const backend_table_t g_backends[] = {
|
||||
{"aladin", DC_FAMILY_UWATEC_ALADIN, 0x3F},
|
||||
{"memomouse", DC_FAMILY_UWATEC_MEMOMOUSE, 0},
|
||||
{"smart", DC_FAMILY_UWATEC_SMART, 0x10},
|
||||
{"meridian", DC_FAMILY_UWATEC_MERIDIAN, 0x20},
|
||||
{"sensus", DC_FAMILY_REEFNET_SENSUS, 1},
|
||||
{"sensuspro", DC_FAMILY_REEFNET_SENSUSPRO, 2},
|
||||
{"sensusultra", DC_FAMILY_REEFNET_SENSUSULTRA, 3},
|
||||
{"vtpro", DC_FAMILY_OCEANIC_VTPRO, 0x4245},
|
||||
{"veo250", DC_FAMILY_OCEANIC_VEO250, 0x424C},
|
||||
{"atom2", DC_FAMILY_OCEANIC_ATOM2, 0x4342},
|
||||
{"i330r", DC_FAMILY_PELAGIC_I330R, 0x4744},
|
||||
{"nemo", DC_FAMILY_MARES_NEMO, 0},
|
||||
{"puck", DC_FAMILY_MARES_PUCK, 7},
|
||||
{"darwin", DC_FAMILY_MARES_DARWIN, 0},
|
||||
@ -82,7 +70,6 @@ static const backend_table_t g_backends[] = {
|
||||
{"ostc3", DC_FAMILY_HW_OSTC3, 0x0A},
|
||||
{"edy", DC_FAMILY_CRESSI_EDY, 0x08},
|
||||
{"leonardo", DC_FAMILY_CRESSI_LEONARDO, 1},
|
||||
{"goa", DC_FAMILY_CRESSI_GOA, 2},
|
||||
{"n2ition3", DC_FAMILY_ZEAGLE_N2ITION3, 0},
|
||||
{"cobalt", DC_FAMILY_ATOMICS_COBALT, 0},
|
||||
{"predator", DC_FAMILY_SHEARWATER_PREDATOR, 2},
|
||||
@ -91,30 +78,6 @@ static const backend_table_t g_backends[] = {
|
||||
{"aqualand", DC_FAMILY_CITIZEN_AQUALAND, 0},
|
||||
{"idive", DC_FAMILY_DIVESYSTEM_IDIVE, 0x03},
|
||||
{"cochran", DC_FAMILY_COCHRAN_COMMANDER, 0},
|
||||
{"divecomputereu", DC_FAMILY_TECDIVING_DIVECOMPUTEREU, 0},
|
||||
{"extreme", DC_FAMILY_MCLEAN_EXTREME, 0},
|
||||
{"lynx", DC_FAMILY_LIQUIVISION_LYNX, 0},
|
||||
{"sp2", DC_FAMILY_SPORASUB_SP2, 0},
|
||||
{"excursion", DC_FAMILY_DEEPSIX_EXCURSION, 0},
|
||||
{"screen", DC_FAMILY_SEAC_SCREEN, 0},
|
||||
{"cosmiq", DC_FAMILY_DEEPBLU_COSMIQ, 0},
|
||||
{"s1", DC_FAMILY_OCEANS_S1, 0},
|
||||
{"freedom", DC_FAMILY_DIVESOFT_FREEDOM, 19},
|
||||
|
||||
// Not merged upstream yet
|
||||
{"descentmk1", DC_FAMILY_GARMIN, 0},
|
||||
};
|
||||
|
||||
static const transport_table_t g_transports[] = {
|
||||
{"serial", DC_TRANSPORT_SERIAL},
|
||||
{"usb", DC_TRANSPORT_USB},
|
||||
{"usbhid", DC_TRANSPORT_USBHID},
|
||||
{"irda", DC_TRANSPORT_IRDA},
|
||||
{"bluetooth", DC_TRANSPORT_BLUETOOTH},
|
||||
{"ble", DC_TRANSPORT_BLE},
|
||||
|
||||
// Not merged upstream yet
|
||||
{"usbstorage",DC_TRANSPORT_USBSTORAGE},
|
||||
};
|
||||
|
||||
const char *
|
||||
@ -181,41 +144,6 @@ dctool_family_model (dc_family_t type)
|
||||
return 0;
|
||||
}
|
||||
|
||||
dc_transport_t
|
||||
dctool_transport_type (const char *name)
|
||||
{
|
||||
for (size_t i = 0; i < C_ARRAY_SIZE (g_transports); ++i) {
|
||||
if (strcmp (name, g_transports[i].name) == 0)
|
||||
return g_transports[i].type;
|
||||
}
|
||||
|
||||
return DC_TRANSPORT_NONE;
|
||||
}
|
||||
|
||||
const char *
|
||||
dctool_transport_name (dc_transport_t type)
|
||||
{
|
||||
for (size_t i = 0; i < C_ARRAY_SIZE (g_transports); ++i) {
|
||||
if (g_transports[i].type == type)
|
||||
return g_transports[i].name;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dc_transport_t
|
||||
dctool_transport_default (dc_descriptor_t *descriptor)
|
||||
{
|
||||
unsigned int transports = dc_descriptor_get_transports (descriptor);
|
||||
|
||||
for (size_t i = 0; i < C_ARRAY_SIZE (g_transports); ++i) {
|
||||
if (transports & g_transports[i].type)
|
||||
return g_transports[i].type;
|
||||
}
|
||||
|
||||
return DC_TRANSPORT_NONE;
|
||||
}
|
||||
|
||||
void
|
||||
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
|
||||
{
|
||||
@ -411,188 +339,3 @@ dctool_file_read (const char *filename)
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
static dc_status_t
|
||||
dctool_usb_open (dc_iostream_t **out, dc_context_t *context, dc_descriptor_t *descriptor)
|
||||
{
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
|
||||
// Discover the usb device.
|
||||
dc_iterator_t *iterator = NULL;
|
||||
dc_usb_device_t *device = NULL;
|
||||
dc_usb_iterator_new (&iterator, context, descriptor);
|
||||
while (dc_iterator_next (iterator, &device) == DC_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
dc_iterator_free (iterator);
|
||||
|
||||
if (device == NULL) {
|
||||
ERROR ("No dive computer found.");
|
||||
status = DC_STATUS_NODEVICE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the usb device.
|
||||
status = dc_usb_open (&iostream, context, device);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Failed to open the usb device.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*out = iostream;
|
||||
|
||||
cleanup:
|
||||
dc_usb_device_free (device);
|
||||
return status;
|
||||
}
|
||||
|
||||
static dc_status_t
|
||||
dctool_usbhid_open (dc_iostream_t **out, dc_context_t *context, dc_descriptor_t *descriptor)
|
||||
{
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
|
||||
// Discover the usbhid device.
|
||||
dc_iterator_t *iterator = NULL;
|
||||
dc_usbhid_device_t *device = NULL;
|
||||
dc_usbhid_iterator_new (&iterator, context, descriptor);
|
||||
while (dc_iterator_next (iterator, &device) == DC_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
dc_iterator_free (iterator);
|
||||
|
||||
if (device == NULL) {
|
||||
ERROR ("No dive computer found.");
|
||||
status = DC_STATUS_NODEVICE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the usbhid device.
|
||||
status = dc_usbhid_open (&iostream, context, device);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Failed to open the usbhid device.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*out = iostream;
|
||||
|
||||
cleanup:
|
||||
dc_usbhid_device_free (device);
|
||||
return status;
|
||||
}
|
||||
|
||||
static dc_status_t
|
||||
dctool_irda_open (dc_iostream_t **out, dc_context_t *context, dc_descriptor_t *descriptor, const char *devname)
|
||||
{
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
unsigned int address = 0;
|
||||
|
||||
if (devname) {
|
||||
// Use the address.
|
||||
address = strtoul(devname, NULL, 0);
|
||||
} else {
|
||||
// Discover the device address.
|
||||
dc_iterator_t *iterator = NULL;
|
||||
dc_irda_device_t *device = NULL;
|
||||
dc_irda_iterator_new (&iterator, context, descriptor);
|
||||
while (dc_iterator_next (iterator, &device) == DC_STATUS_SUCCESS) {
|
||||
address = dc_irda_device_get_address (device);
|
||||
dc_irda_device_free (device);
|
||||
break;
|
||||
}
|
||||
dc_iterator_free (iterator);
|
||||
}
|
||||
|
||||
if (address == 0) {
|
||||
if (devname) {
|
||||
ERROR ("No valid device address specified.");
|
||||
} else {
|
||||
ERROR ("No dive computer found.");
|
||||
}
|
||||
status = DC_STATUS_NODEVICE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the irda socket.
|
||||
status = dc_irda_open (&iostream, context, address, 1);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Failed to open the irda socket.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*out = iostream;
|
||||
|
||||
cleanup:
|
||||
return status;
|
||||
}
|
||||
|
||||
static dc_status_t
|
||||
dctool_bluetooth_open (dc_iostream_t **out, dc_context_t *context, dc_descriptor_t *descriptor, const char *devname)
|
||||
{
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_bluetooth_address_t address = 0;
|
||||
|
||||
if (devname) {
|
||||
// Use the address.
|
||||
address = dc_bluetooth_str2addr(devname);
|
||||
} else {
|
||||
// Discover the device address.
|
||||
dc_iterator_t *iterator = NULL;
|
||||
dc_bluetooth_device_t *device = NULL;
|
||||
dc_bluetooth_iterator_new (&iterator, context, descriptor);
|
||||
while (dc_iterator_next (iterator, &device) == DC_STATUS_SUCCESS) {
|
||||
address = dc_bluetooth_device_get_address (device);
|
||||
dc_bluetooth_device_free (device);
|
||||
break;
|
||||
}
|
||||
dc_iterator_free (iterator);
|
||||
}
|
||||
|
||||
if (address == 0) {
|
||||
if (devname) {
|
||||
ERROR ("No valid device address specified.");
|
||||
} else {
|
||||
ERROR ("No dive computer found.");
|
||||
}
|
||||
status = DC_STATUS_NODEVICE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the bluetooth socket.
|
||||
status = dc_bluetooth_open (&iostream, context, address, 0);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Failed to open the bluetooth socket.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
*out = iostream;
|
||||
|
||||
cleanup:
|
||||
return status;
|
||||
}
|
||||
|
||||
dc_status_t
|
||||
dctool_iostream_open (dc_iostream_t **iostream, dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname)
|
||||
{
|
||||
switch (transport) {
|
||||
case DC_TRANSPORT_SERIAL:
|
||||
return dc_serial_open (iostream, context, devname);
|
||||
case DC_TRANSPORT_USB:
|
||||
return dctool_usb_open(iostream, context, descriptor);
|
||||
case DC_TRANSPORT_USBHID:
|
||||
return dctool_usbhid_open(iostream, context, descriptor);
|
||||
case DC_TRANSPORT_IRDA:
|
||||
return dctool_irda_open (iostream, context, descriptor, devname);
|
||||
case DC_TRANSPORT_BLUETOOTH:
|
||||
return dctool_bluetooth_open (iostream, context, descriptor, devname);
|
||||
default:
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
// Not merged upstream yet
|
||||
case DC_TRANSPORT_USBSTORAGE:
|
||||
return dc_usb_storage_open (iostream, context, devname);
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/descriptor.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -43,15 +42,6 @@ dctool_family_name (dc_family_t type);
|
||||
unsigned int
|
||||
dctool_family_model (dc_family_t type);
|
||||
|
||||
dc_transport_t
|
||||
dctool_transport_type (const char *name);
|
||||
|
||||
const char *
|
||||
dctool_transport_name (dc_transport_t type);
|
||||
|
||||
dc_transport_t
|
||||
dctool_transport_default (dc_descriptor_t *descriptor);
|
||||
|
||||
void
|
||||
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata);
|
||||
|
||||
@ -67,9 +57,6 @@ dctool_file_write (const char *filename, dc_buffer_t *buffer);
|
||||
dc_buffer_t *
|
||||
dctool_file_read (const char *filename);
|
||||
|
||||
dc_status_t
|
||||
dctool_iostream_open (dc_iostream_t **iostream, dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
@ -24,12 +24,10 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -50,7 +48,7 @@
|
||||
#define RESET 1
|
||||
#endif
|
||||
|
||||
#if defined(__GLIBC__) || defined(__MINGW32__) || defined(BSD) || defined(__ANDROID__)
|
||||
#if defined(__GLIBC__) || defined(__MINGW32__) || defined(BSD)
|
||||
#define NOPERMUTATION "+"
|
||||
#else
|
||||
#define NOPERMUTATION ""
|
||||
@ -60,13 +58,11 @@ static const dctool_command_t *g_commands[] = {
|
||||
&dctool_help,
|
||||
&dctool_version,
|
||||
&dctool_list,
|
||||
&dctool_scan,
|
||||
&dctool_download,
|
||||
&dctool_dump,
|
||||
&dctool_parse,
|
||||
&dctool_read,
|
||||
&dctool_write,
|
||||
&dctool_timesync,
|
||||
&dctool_fwupdate,
|
||||
NULL
|
||||
};
|
||||
@ -242,8 +238,7 @@ main (int argc, char *argv[])
|
||||
}
|
||||
|
||||
// Translate the help option into a command.
|
||||
char helpcmd[] = "help";
|
||||
char *argv_help[] = {helpcmd, NULL, NULL};
|
||||
char *argv_help[] = {(char *) "help", NULL, NULL};
|
||||
if (help || argv[0] == NULL) {
|
||||
if (argv[0]) {
|
||||
argv_help[1] = argv[0];
|
||||
@ -279,7 +274,14 @@ main (int argc, char *argv[])
|
||||
dc_context_set_loglevel (context, loglevel);
|
||||
dc_context_set_logfunc (context, logfunc, NULL);
|
||||
|
||||
if (device != NULL || family != DC_FAMILY_NULL) {
|
||||
if (command->config & DCTOOL_CONFIG_DESCRIPTOR) {
|
||||
// Check mandatory arguments.
|
||||
if (device == NULL && family == DC_FAMILY_NULL) {
|
||||
message ("No device name or family type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Search for a matching device descriptor.
|
||||
status = dctool_descriptor_search (&descriptor, device, family, model);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
@ -301,13 +303,6 @@ main (int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// Check mandatory descriptor arguments.
|
||||
if (command->config & DCTOOL_CONFIG_DESCRIPTOR && descriptor == NULL) {
|
||||
message ("No device name or family type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Execute the command.
|
||||
exitcode = command->run (argc, argv, context, descriptor);
|
||||
|
||||
|
||||
@ -45,13 +45,11 @@ typedef struct dctool_command_t {
|
||||
extern const dctool_command_t dctool_help;
|
||||
extern const dctool_command_t dctool_version;
|
||||
extern const dctool_command_t dctool_list;
|
||||
extern const dctool_command_t dctool_scan;
|
||||
extern const dctool_command_t dctool_download;
|
||||
extern const dctool_command_t dctool_dump;
|
||||
extern const dctool_command_t dctool_parse;
|
||||
extern const dctool_command_t dctool_read;
|
||||
extern const dctool_command_t dctool_write;
|
||||
extern const dctool_command_t dctool_timesync;
|
||||
extern const dctool_command_t dctool_fwupdate;
|
||||
|
||||
const dctool_command_t *
|
||||
|
||||
@ -24,11 +24,9 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -80,12 +78,20 @@ dive_cb (const unsigned char *data, unsigned int size, const unsigned char *fing
|
||||
|
||||
// Create the parser.
|
||||
message ("Creating the parser.\n");
|
||||
rc = dc_parser_new (&parser, divedata->device, data, size);
|
||||
rc = dc_parser_new (&parser, divedata->device);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error creating the parser.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Register the data.
|
||||
message ("Registering the data.\n");
|
||||
rc = dc_parser_set_data (parser, data, size);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error registering the data.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Parse the dive data.
|
||||
message ("Parsing the dive data.\n");
|
||||
rc = dctool_output_write (divedata->output, parser, data, size, fingerprint, fsize);
|
||||
@ -146,28 +152,18 @@ event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *us
|
||||
}
|
||||
|
||||
static dc_status_t
|
||||
download (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, const char *cachedir, dc_buffer_t *fingerprint, dctool_output_t *output)
|
||||
download (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, const char *cachedir, dc_buffer_t *fingerprint, dctool_output_t *output)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
dc_buffer_t *ofingerprint = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
message ("Opening the device (%s %s, %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
dc_descriptor_get_product (descriptor),
|
||||
devname ? devname : "null");
|
||||
rc = dc_device_open (&device, context, descriptor, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
@ -240,7 +236,6 @@ download (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t tra
|
||||
cleanup:
|
||||
dc_buffer_free (ofingerprint);
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -252,7 +247,6 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
dc_buffer_t *fingerprint = NULL;
|
||||
dctool_output_t *output = NULL;
|
||||
dctool_units_t units = DCTOOL_UNITS_METRIC;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
@ -263,11 +257,10 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:o:p:c:f:u:";
|
||||
const char *optstring = "ho:p:c:f:u:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{"output", required_argument, 0, 'o'},
|
||||
{"fingerprint", required_argument, 0, 'p'},
|
||||
{"cache", required_argument, 0, 'c'},
|
||||
@ -283,9 +276,6 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
case 'o':
|
||||
filename = optarg;
|
||||
break;
|
||||
@ -318,13 +308,6 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Convert the fingerprint to binary.
|
||||
fingerprint = dctool_convert_hex2bin (fphex);
|
||||
|
||||
@ -345,7 +328,7 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
}
|
||||
|
||||
// Download the dives.
|
||||
status = download (context, descriptor, transport, argv[0], cachedir, fingerprint, output);
|
||||
status = download (context, descriptor, argv[0], cachedir, fingerprint, output);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
@ -369,7 +352,6 @@ const dctool_command_t dctool_download = {
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
" -o, --output <filename> Output filename\n"
|
||||
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
||||
" -c, --cache <directory> Cache directory\n"
|
||||
@ -377,7 +359,6 @@ const dctool_command_t dctool_download = {
|
||||
" -u, --units <units> Set units (metric or imperial)\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
" -o <filename> Output filename\n"
|
||||
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
||||
" -c <directory> Cache directory\n"
|
||||
|
||||
@ -24,11 +24,9 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -42,27 +40,17 @@
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
dump (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, dc_buffer_t *fingerprint, dc_buffer_t *buffer)
|
||||
dump (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, dc_buffer_t *fingerprint, dc_buffer_t *buffer)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
message ("Opening the device (%s %s, %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
dc_descriptor_get_product (descriptor),
|
||||
devname ? devname : "null");
|
||||
rc = dc_device_open (&device, context, descriptor, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
@ -105,7 +93,6 @@ dump (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transpo
|
||||
|
||||
cleanup:
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -116,7 +103,6 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_buffer_t *fingerprint = NULL;
|
||||
dc_buffer_t *buffer = NULL;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
@ -125,11 +111,10 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:o:p:";
|
||||
const char *optstring = "ho:p:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{"output", required_argument, 0, 'o'},
|
||||
{"fingerprint", required_argument, 0, 'p'},
|
||||
{0, 0, 0, 0 }
|
||||
@ -142,9 +127,6 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
case 'o':
|
||||
filename = optarg;
|
||||
break;
|
||||
@ -165,13 +147,6 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Convert the fingerprint to binary.
|
||||
fingerprint = dctool_convert_hex2bin (fphex);
|
||||
|
||||
@ -179,7 +154,7 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
buffer = dc_buffer_new (0);
|
||||
|
||||
// Download the memory dump.
|
||||
status = dump (context, descriptor, transport, argv[0], fingerprint, buffer);
|
||||
status = dump (context, descriptor, argv[0], fingerprint, buffer);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
@ -206,12 +181,10 @@ const dctool_command_t dctool_dump = {
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
" -o, --output <filename> Output filename\n"
|
||||
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
" -o <filename> Output filename\n"
|
||||
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
||||
#endif
|
||||
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -37,34 +35,23 @@
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/hw_ostc.h>
|
||||
#include <libdivecomputer/hw_ostc3.h>
|
||||
#include <libdivecomputer/divesystem_idive.h>
|
||||
|
||||
#include "dctool.h"
|
||||
#include "common.h"
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, const char *hexfile)
|
||||
fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, const char *hexfile)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
message ("Opening the device (%s %s, %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
dc_descriptor_get_product (descriptor),
|
||||
devname ? devname : "null");
|
||||
rc = dc_device_open (&device, context, descriptor, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
@ -94,10 +81,7 @@ fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t tra
|
||||
rc = hw_ostc_device_fwupdate (device, hexfile);
|
||||
break;
|
||||
case DC_FAMILY_HW_OSTC3:
|
||||
rc = hw_ostc3_device_fwupdate (device, hexfile, false);
|
||||
break;
|
||||
case DC_FAMILY_DIVESYSTEM_IDIVE:
|
||||
rc = divesystem_idive_device_fwupdate (device, hexfile);
|
||||
rc = hw_ostc3_device_fwupdate (device, hexfile);
|
||||
break;
|
||||
default:
|
||||
rc = DC_STATUS_UNSUPPORTED;
|
||||
@ -110,7 +94,6 @@ fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t tra
|
||||
|
||||
cleanup:
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -119,7 +102,6 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
{
|
||||
int exitcode = EXIT_SUCCESS;
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
@ -127,11 +109,10 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:f:";
|
||||
const char *optstring = "hf:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{"firmware", required_argument, 0, 'f'},
|
||||
{0, 0, 0, 0 }
|
||||
};
|
||||
@ -143,9 +124,6 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
case 'f':
|
||||
filename = optarg;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
@ -163,13 +141,6 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Check mandatory arguments.
|
||||
if (!filename) {
|
||||
message ("No firmware file specified.\n");
|
||||
@ -178,7 +149,7 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
||||
}
|
||||
|
||||
// Update the firmware.
|
||||
status = fwupdate (context, descriptor, transport, argv[0], filename);
|
||||
status = fwupdate (context, descriptor, argv[0], filename);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
@ -200,11 +171,9 @@ const dctool_command_t dctool_fwupdate = {
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
" -f, --firmware <filename> Firmware filename\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
" -f <filename> Firmware filename\n"
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
@ -24,11 +24,9 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -37,6 +35,20 @@
|
||||
#include <libdivecomputer/descriptor.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
|
||||
#include <libdivecomputer/suunto.h>
|
||||
#include <libdivecomputer/reefnet.h>
|
||||
#include <libdivecomputer/uwatec.h>
|
||||
#include <libdivecomputer/oceanic.h>
|
||||
#include <libdivecomputer/mares.h>
|
||||
#include <libdivecomputer/hw.h>
|
||||
#include <libdivecomputer/cressi.h>
|
||||
#include <libdivecomputer/zeagle.h>
|
||||
#include <libdivecomputer/atomics.h>
|
||||
#include <libdivecomputer/shearwater.h>
|
||||
#include <libdivecomputer/diverite.h>
|
||||
#include <libdivecomputer/citizen.h>
|
||||
#include <libdivecomputer/divesystem.h>
|
||||
|
||||
#include "dctool.h"
|
||||
#include "output.h"
|
||||
#include "common.h"
|
||||
@ -54,17 +66,17 @@ parse (dc_buffer_t *buffer, dc_context_t *context, dc_descriptor_t *descriptor,
|
||||
|
||||
// Create the parser.
|
||||
message ("Creating the parser.\n");
|
||||
rc = dc_parser_new2 (&parser, context, descriptor, data, size);
|
||||
rc = dc_parser_new2 (&parser, context, descriptor, devtime, systime);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error creating the parser.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Set the clock.
|
||||
message ("Setting the clock.\n");
|
||||
rc = dc_parser_set_clock (parser, devtime, systime);
|
||||
if (rc != DC_STATUS_SUCCESS && rc != DC_STATUS_UNSUPPORTED) {
|
||||
ERROR ("Error setting the clock.");
|
||||
// Register the data.
|
||||
message ("Registering the data.\n");
|
||||
rc = dc_parser_set_data (parser, data, size);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error registering the data.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -154,7 +166,7 @@ dctool_parse_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
for (int i = 0; i < argc; ++i) {
|
||||
for (unsigned int i = 0; i < argc; ++i) {
|
||||
// Read the input file.
|
||||
buffer = dctool_file_read (argv[i]);
|
||||
if (buffer == NULL) {
|
||||
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -41,27 +39,17 @@
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
doread (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||
doread (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
message ("Opening the device (%s %s, %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
dc_descriptor_get_product (descriptor),
|
||||
devname ? devname : "null");
|
||||
rc = dc_device_open (&device, context, descriptor, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
@ -94,7 +82,6 @@ doread (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t trans
|
||||
|
||||
cleanup:
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -104,7 +91,6 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
int exitcode = EXIT_SUCCESS;
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_buffer_t *buffer = NULL;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
@ -114,11 +100,10 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:a:c:o:";
|
||||
const char *optstring = "ha:c:o:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{"address", required_argument, 0, 'a'},
|
||||
{"count", required_argument, 0, 'c'},
|
||||
{"output", required_argument, 0, 'o'},
|
||||
@ -132,9 +117,6 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
case 'a':
|
||||
address = strtoul (optarg, NULL, 0);
|
||||
have_address = 1;
|
||||
@ -160,13 +142,6 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Check mandatory arguments.
|
||||
if (!have_address || !have_count) {
|
||||
message ("No memory address or byte count specified.\n");
|
||||
@ -184,7 +159,7 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
}
|
||||
|
||||
// Read data from the internal memory.
|
||||
status = doread (context, descriptor, transport, argv[0], address, buffer);
|
||||
status = doread (context, descriptor, argv[0], address, buffer);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
@ -210,13 +185,11 @@ const dctool_command_t dctool_read = {
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
" -a, --address <address> Memory address\n"
|
||||
" -c, --count <count> Number of bytes\n"
|
||||
" -o, --output <filename> Output filename\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
" -a <address> Memory address\n"
|
||||
" -c <count> Number of bytes\n"
|
||||
" -o <filename> Output filename\n"
|
||||
|
||||
@ -1,202 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2017 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/descriptor.h>
|
||||
#include <libdivecomputer/iterator.h>
|
||||
#include <libdivecomputer/serial.h>
|
||||
#include <libdivecomputer/irda.h>
|
||||
#include <libdivecomputer/bluetooth.h>
|
||||
#include <libdivecomputer/usb.h>
|
||||
#include <libdivecomputer/usbhid.h>
|
||||
|
||||
#include "dctool.h"
|
||||
#include "common.h"
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
scan (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport)
|
||||
{
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_iterator_t *iterator = NULL;
|
||||
|
||||
// Create the device iterator.
|
||||
switch (transport) {
|
||||
case DC_TRANSPORT_SERIAL:
|
||||
status = dc_serial_iterator_new (&iterator, context, descriptor);
|
||||
break;
|
||||
case DC_TRANSPORT_IRDA:
|
||||
status = dc_irda_iterator_new (&iterator, context, descriptor);
|
||||
break;
|
||||
case DC_TRANSPORT_BLUETOOTH:
|
||||
status = dc_bluetooth_iterator_new (&iterator, context, descriptor);
|
||||
break;
|
||||
case DC_TRANSPORT_USB:
|
||||
status = dc_usb_iterator_new (&iterator, context, descriptor);
|
||||
break;
|
||||
case DC_TRANSPORT_USBHID:
|
||||
status = dc_usbhid_iterator_new (&iterator, context, descriptor);
|
||||
break;
|
||||
default:
|
||||
status = DC_STATUS_UNSUPPORTED;
|
||||
break;
|
||||
}
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Failed to create the device iterator.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Enumerate the devices.
|
||||
void *device = NULL;
|
||||
while ((status = dc_iterator_next (iterator, &device)) == DC_STATUS_SUCCESS) {
|
||||
char buffer[DC_BLUETOOTH_SIZE];
|
||||
switch (transport) {
|
||||
case DC_TRANSPORT_SERIAL:
|
||||
printf ("%s\n", dc_serial_device_get_name (device));
|
||||
dc_serial_device_free (device);
|
||||
break;
|
||||
case DC_TRANSPORT_IRDA:
|
||||
printf ("%08x\t%s\n", dc_irda_device_get_address (device), dc_irda_device_get_name (device));
|
||||
dc_irda_device_free (device);
|
||||
break;
|
||||
case DC_TRANSPORT_BLUETOOTH:
|
||||
printf ("%s\t%s\n",
|
||||
dc_bluetooth_addr2str(dc_bluetooth_device_get_address (device), buffer, sizeof(buffer)),
|
||||
dc_bluetooth_device_get_name (device));
|
||||
dc_bluetooth_device_free (device);
|
||||
break;
|
||||
case DC_TRANSPORT_USB:
|
||||
printf ("%04x:%04x\n", dc_usb_device_get_vid (device), dc_usb_device_get_pid (device));
|
||||
dc_usb_device_free (device);
|
||||
break;
|
||||
case DC_TRANSPORT_USBHID:
|
||||
printf ("%04x:%04x\n", dc_usbhid_device_get_vid (device), dc_usbhid_device_get_pid (device));
|
||||
dc_usbhid_device_free (device);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (status != DC_STATUS_SUCCESS && status != DC_STATUS_DONE) {
|
||||
ERROR ("Failed to enumerate the devices.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
status = DC_STATUS_SUCCESS;
|
||||
|
||||
cleanup:
|
||||
dc_iterator_free (iterator);
|
||||
return status;
|
||||
}
|
||||
|
||||
static int
|
||||
dctool_scan_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t *descriptor)
|
||||
{
|
||||
int exitcode = EXIT_SUCCESS;
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{0, 0, 0, 0 }
|
||||
};
|
||||
while ((opt = getopt_long (argc, argv, optstring, options, NULL)) != -1) {
|
||||
#else
|
||||
while ((opt = getopt (argc, argv, optstring)) != -1) {
|
||||
#endif
|
||||
switch (opt) {
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
default:
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
// Show help message.
|
||||
if (help) {
|
||||
dctool_command_showhelp (&dctool_scan);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Scan for supported devices.
|
||||
status = scan (context, descriptor, transport);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
return exitcode;
|
||||
}
|
||||
|
||||
const dctool_command_t dctool_scan = {
|
||||
dctool_scan_run,
|
||||
DCTOOL_CONFIG_NONE,
|
||||
"scan",
|
||||
"Scan for supported devices",
|
||||
"Usage:\n"
|
||||
" dctool scan [options]\n"
|
||||
"\n"
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
#endif
|
||||
};
|
||||
@ -1,189 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2017 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/descriptor.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
|
||||
#include "dctool.h"
|
||||
#include "common.h"
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
do_timesync (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, const dc_datetime_t *datetime)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Register the event handler.
|
||||
message ("Registering the event handler.\n");
|
||||
int events = DC_EVENT_WAITING | DC_EVENT_PROGRESS | DC_EVENT_DEVINFO | DC_EVENT_CLOCK | DC_EVENT_VENDOR;
|
||||
rc = dc_device_set_events (device, events, dctool_event_cb, NULL);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error registering the event handler.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Register the cancellation handler.
|
||||
message ("Registering the cancellation handler.\n");
|
||||
rc = dc_device_set_cancel (device, dctool_cancel_cb, NULL);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error registering the cancellation handler.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Syncronize the device clock.
|
||||
message ("Syncronize the device clock.\n");
|
||||
rc = dc_device_timesync (device, datetime);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error syncronizing the device clock.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
dctool_timesync_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t *descriptor)
|
||||
{
|
||||
int exitcode = EXIT_SUCCESS;
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{0, 0, 0, 0 }
|
||||
};
|
||||
while ((opt = getopt_long (argc, argv, optstring, options, NULL)) != -1) {
|
||||
#else
|
||||
while ((opt = getopt (argc, argv, optstring)) != -1) {
|
||||
#endif
|
||||
switch (opt) {
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
default:
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
// Show help message.
|
||||
if (help) {
|
||||
dctool_command_showhelp (&dctool_timesync);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Get the system time.
|
||||
dc_datetime_t datetime = {0};
|
||||
dc_ticks_t now = dc_datetime_now ();
|
||||
if (!dc_datetime_localtime(&datetime, now)) {
|
||||
message ("ERROR: Failed to get the system time.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Synchronize the device clock.
|
||||
status = do_timesync (context, descriptor, transport, argv[0], &datetime);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
return exitcode;
|
||||
}
|
||||
|
||||
const dctool_command_t dctool_timesync = {
|
||||
dctool_timesync_run,
|
||||
DCTOOL_CONFIG_DESCRIPTOR,
|
||||
"timesync",
|
||||
"Synchronize the device clock",
|
||||
"Usage:\n"
|
||||
" dctool timesync [options]\n"
|
||||
"\n"
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
#endif
|
||||
};
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
|
||||
@ -24,10 +24,8 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_GETOPT_H
|
||||
#include <getopt.h>
|
||||
#endif
|
||||
@ -41,27 +39,17 @@
|
||||
#include "utils.h"
|
||||
|
||||
static dc_status_t
|
||||
dowrite (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||
dowrite (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||
{
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
dc_iostream_t *iostream = NULL;
|
||||
dc_device_t *device = NULL;
|
||||
|
||||
// Open the I/O stream.
|
||||
message ("Opening the I/O stream (%s, %s).\n",
|
||||
dctool_transport_name (transport),
|
||||
devname ? devname : "null");
|
||||
rc = dctool_iostream_open (&iostream, context, descriptor, transport, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the I/O stream.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Open the device.
|
||||
message ("Opening the device (%s %s).\n",
|
||||
message ("Opening the device (%s %s, %s).\n",
|
||||
dc_descriptor_get_vendor (descriptor),
|
||||
dc_descriptor_get_product (descriptor));
|
||||
rc = dc_device_open (&device, context, descriptor, iostream);
|
||||
dc_descriptor_get_product (descriptor),
|
||||
devname ? devname : "null");
|
||||
rc = dc_device_open (&device, context, descriptor, devname);
|
||||
if (rc != DC_STATUS_SUCCESS) {
|
||||
ERROR ("Error opening the device.");
|
||||
goto cleanup;
|
||||
@ -94,7 +82,6 @@ dowrite (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t tran
|
||||
|
||||
cleanup:
|
||||
dc_device_close (device);
|
||||
dc_iostream_close (iostream);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -104,7 +91,6 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
int exitcode = EXIT_SUCCESS;
|
||||
dc_status_t status = DC_STATUS_SUCCESS;
|
||||
dc_buffer_t *buffer = NULL;
|
||||
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||
|
||||
// Default option values.
|
||||
unsigned int help = 0;
|
||||
@ -114,11 +100,10 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
|
||||
// Parse the command-line options.
|
||||
int opt = 0;
|
||||
const char *optstring = "ht:a:c:i:";
|
||||
const char *optstring = "ha:c:i:";
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
struct option options[] = {
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"transport", required_argument, 0, 't'},
|
||||
{"address", required_argument, 0, 'a'},
|
||||
{"count", required_argument, 0, 'c'},
|
||||
{"input", required_argument, 0, 'i'},
|
||||
@ -132,9 +117,6 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
case 'h':
|
||||
help = 1;
|
||||
break;
|
||||
case 't':
|
||||
transport = dctool_transport_type (optarg);
|
||||
break;
|
||||
case 'a':
|
||||
address = strtoul (optarg, NULL, 0);
|
||||
have_address = 1;
|
||||
@ -160,13 +142,6 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
// Check the transport type.
|
||||
if (transport == DC_TRANSPORT_NONE) {
|
||||
message ("No valid transport type specified.\n");
|
||||
exitcode = EXIT_FAILURE;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
// Check mandatory arguments.
|
||||
if (!have_address) {
|
||||
message ("No memory address specified.\n");
|
||||
@ -190,7 +165,7 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
||||
}
|
||||
|
||||
// Write data to the internal memory.
|
||||
status = dowrite (context, descriptor, transport, argv[0], address, buffer);
|
||||
status = dowrite (context, descriptor, argv[0], address, buffer);
|
||||
if (status != DC_STATUS_SUCCESS) {
|
||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||
exitcode = EXIT_FAILURE;
|
||||
@ -213,13 +188,11 @@ const dctool_command_t dctool_write = {
|
||||
"Options:\n"
|
||||
#ifdef HAVE_GETOPT_LONG
|
||||
" -h, --help Show help message\n"
|
||||
" -t, --transport <name> Transport type\n"
|
||||
" -a, --address <address> Memory address\n"
|
||||
" -c, --count <count> Number of bytes\n"
|
||||
" -i, --input <filename> Input filename\n"
|
||||
#else
|
||||
" -h Show help message\n"
|
||||
" -t <transport> Transport type\n"
|
||||
" -a <address> Memory address\n"
|
||||
" -c <count> Number of bytes\n"
|
||||
" -i <filename> Input filename\n"
|
||||
|
||||
@ -80,7 +80,7 @@ mktemplate_datetime (char *buffer, size_t size, dc_parser_t *parser)
|
||||
n = snprintf (buffer, size, "%04i%02i%02iT%02i%02i%02i",
|
||||
datetime.year, datetime.month, datetime.day,
|
||||
datetime.hour, datetime.minute, datetime.second);
|
||||
if (n < 0 || (size_t) n >= size)
|
||||
if (n < 0 || n >= size)
|
||||
return -1;
|
||||
|
||||
return n;
|
||||
@ -92,7 +92,7 @@ mktemplate_number (char *buffer, size_t size, unsigned int number)
|
||||
int n = 0;
|
||||
|
||||
n = snprintf (buffer, size, "%04u", number);
|
||||
if (n < 0 || (size_t) n >= size)
|
||||
if (n < 0 || n >= size)
|
||||
return -1;
|
||||
|
||||
return n;
|
||||
|
||||
@ -90,7 +90,7 @@ convert_volume (double value, dctool_units_t units)
|
||||
}
|
||||
|
||||
static void
|
||||
sample_cb (dc_sample_type_t type, const dc_sample_value_t *value, void *userdata)
|
||||
sample_cb (dc_sample_type_t type, dc_sample_value_t value, void *userdata)
|
||||
{
|
||||
static const char *events[] = {
|
||||
"none", "deco", "rbt", "ascent", "ceiling", "workload", "transmitter",
|
||||
@ -104,80 +104,64 @@ sample_cb (dc_sample_type_t type, const dc_sample_value_t *value, void *userdata
|
||||
|
||||
sample_data_t *sampledata = (sample_data_t *) userdata;
|
||||
|
||||
unsigned int seconds = 0, milliseconds = 0;
|
||||
|
||||
switch (type) {
|
||||
case DC_SAMPLE_TIME:
|
||||
seconds = value->time / 1000;
|
||||
milliseconds = value->time % 1000;
|
||||
if (sampledata->nsamples++)
|
||||
fprintf (sampledata->ostream, "</sample>\n");
|
||||
fprintf (sampledata->ostream, "<sample>\n");
|
||||
if (milliseconds) {
|
||||
fprintf (sampledata->ostream, " <time>%02u:%02u.%03u</time>\n", seconds / 60, seconds % 60, milliseconds);
|
||||
} else {
|
||||
fprintf (sampledata->ostream, " <time>%02u:%02u</time>\n", seconds / 60, seconds % 60);
|
||||
}
|
||||
fprintf (sampledata->ostream, " <time>%02u:%02u</time>\n", value.time / 60, value.time % 60);
|
||||
break;
|
||||
case DC_SAMPLE_DEPTH:
|
||||
fprintf (sampledata->ostream, " <depth>%.2f</depth>\n",
|
||||
convert_depth(value->depth, sampledata->units));
|
||||
convert_depth(value.depth, sampledata->units));
|
||||
break;
|
||||
case DC_SAMPLE_PRESSURE:
|
||||
fprintf (sampledata->ostream, " <pressure tank=\"%u\">%.2f</pressure>\n",
|
||||
value->pressure.tank,
|
||||
convert_pressure(value->pressure.value, sampledata->units));
|
||||
value.pressure.tank,
|
||||
convert_pressure(value.pressure.value, sampledata->units));
|
||||
break;
|
||||
case DC_SAMPLE_TEMPERATURE:
|
||||
fprintf (sampledata->ostream, " <temperature>%.2f</temperature>\n",
|
||||
convert_temperature(value->temperature, sampledata->units));
|
||||
convert_temperature(value.temperature, sampledata->units));
|
||||
break;
|
||||
case DC_SAMPLE_EVENT:
|
||||
if (value->event.type != SAMPLE_EVENT_GASCHANGE && value->event.type != SAMPLE_EVENT_GASCHANGE2) {
|
||||
if (value.event.type != SAMPLE_EVENT_GASCHANGE && value.event.type != SAMPLE_EVENT_GASCHANGE2) {
|
||||
fprintf (sampledata->ostream, " <event type=\"%u\" time=\"%u\" flags=\"%u\" value=\"%u\">%s</event>\n",
|
||||
value->event.type, value->event.time, value->event.flags, value->event.value, events[value->event.type]);
|
||||
value.event.type, value.event.time, value.event.flags, value.event.value, events[value.event.type]);
|
||||
}
|
||||
break;
|
||||
case DC_SAMPLE_RBT:
|
||||
fprintf (sampledata->ostream, " <rbt>%u</rbt>\n", value->rbt);
|
||||
fprintf (sampledata->ostream, " <rbt>%u</rbt>\n", value.rbt);
|
||||
break;
|
||||
case DC_SAMPLE_HEARTBEAT:
|
||||
fprintf (sampledata->ostream, " <heartbeat>%u</heartbeat>\n", value->heartbeat);
|
||||
fprintf (sampledata->ostream, " <heartbeat>%u</heartbeat>\n", value.heartbeat);
|
||||
break;
|
||||
case DC_SAMPLE_BEARING:
|
||||
fprintf (sampledata->ostream, " <bearing>%u</bearing>\n", value->bearing);
|
||||
fprintf (sampledata->ostream, " <bearing>%u</bearing>\n", value.bearing);
|
||||
break;
|
||||
case DC_SAMPLE_VENDOR:
|
||||
fprintf (sampledata->ostream, " <vendor type=\"%u\" size=\"%u\">", value->vendor.type, value->vendor.size);
|
||||
for (unsigned int i = 0; i < value->vendor.size; ++i)
|
||||
fprintf (sampledata->ostream, "%02X", ((const unsigned char *) value->vendor.data)[i]);
|
||||
fprintf (sampledata->ostream, " <vendor type=\"%u\" size=\"%u\">", value.vendor.type, value.vendor.size);
|
||||
for (unsigned int i = 0; i < value.vendor.size; ++i)
|
||||
fprintf (sampledata->ostream, "%02X", ((unsigned char *) value.vendor.data)[i]);
|
||||
fprintf (sampledata->ostream, "</vendor>\n");
|
||||
break;
|
||||
case DC_SAMPLE_SETPOINT:
|
||||
fprintf (sampledata->ostream, " <setpoint>%.2f</setpoint>\n", value->setpoint);
|
||||
fprintf (sampledata->ostream, " <setpoint>%.2f</setpoint>\n", value.setpoint);
|
||||
break;
|
||||
case DC_SAMPLE_PPO2:
|
||||
if (value->ppo2.sensor != DC_SENSOR_NONE) {
|
||||
fprintf (sampledata->ostream, " <ppo2 sensor=\"%u\">%.2f</ppo2>\n", value->ppo2.sensor, value->ppo2.value);
|
||||
} else {
|
||||
fprintf (sampledata->ostream, " <ppo2>%.2f</ppo2>\n", value->ppo2.value);
|
||||
}
|
||||
fprintf (sampledata->ostream, " <ppo2>%.2f</ppo2>\n", value.ppo2);
|
||||
break;
|
||||
case DC_SAMPLE_CNS:
|
||||
fprintf (sampledata->ostream, " <cns>%.1f</cns>\n", value->cns * 100.0);
|
||||
fprintf (sampledata->ostream, " <cns>%.1f</cns>\n", value.cns * 100.0);
|
||||
break;
|
||||
case DC_SAMPLE_DECO:
|
||||
fprintf (sampledata->ostream, " <deco time=\"%u\" depth=\"%.2f\">%s</deco>\n",
|
||||
value->deco.time,
|
||||
convert_depth(value->deco.depth, sampledata->units),
|
||||
decostop[value->deco.type]);
|
||||
if (value->deco.tts) {
|
||||
fprintf (sampledata->ostream, " <tts>%u</tts>\n",
|
||||
value->deco.tts);
|
||||
}
|
||||
value.deco.time,
|
||||
convert_depth(value.deco.depth, sampledata->units),
|
||||
decostop[value.deco.type]);
|
||||
break;
|
||||
case DC_SAMPLE_GASMIX:
|
||||
fprintf (sampledata->ostream, " <gasmix>%u</gasmix>\n", value->gasmix);
|
||||
fprintf (sampledata->ostream, " <gasmix>%u</gasmix>\n", value.gasmix);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -246,16 +230,9 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (dt.timezone == DC_TIMEZONE_NONE) {
|
||||
fprintf (output->ostream, "<datetime>%04i-%02i-%02i %02i:%02i:%02i</datetime>\n",
|
||||
dt.year, dt.month, dt.day,
|
||||
dt.hour, dt.minute, dt.second);
|
||||
} else {
|
||||
fprintf (output->ostream, "<datetime>%04i-%02i-%02i %02i:%02i:%02i %+03i:%02i</datetime>\n",
|
||||
dt.year, dt.month, dt.day,
|
||||
dt.hour, dt.minute, dt.second,
|
||||
dt.timezone / 3600, (abs(dt.timezone) % 3600) / 60);
|
||||
}
|
||||
fprintf (output->ostream, "<datetime>%04i-%02i-%02i %02i:%02i:%02i</datetime>\n",
|
||||
dt.year, dt.month, dt.day,
|
||||
dt.hour, dt.minute, dt.second);
|
||||
|
||||
// Parse the divetime.
|
||||
message ("Parsing the divetime.\n");
|
||||
@ -281,20 +258,6 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
fprintf (output->ostream, "<maxdepth>%.2f</maxdepth>\n",
|
||||
convert_depth(maxdepth, output->units));
|
||||
|
||||
// Parse the avgdepth.
|
||||
message ("Parsing the avgdepth.\n");
|
||||
double avgdepth = 0.0;
|
||||
status = dc_parser_get_field (parser, DC_FIELD_AVGDEPTH, 0, &avgdepth);
|
||||
if (status != DC_STATUS_SUCCESS && status != DC_STATUS_UNSUPPORTED) {
|
||||
ERROR ("Error parsing the avgdepth.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (status != DC_STATUS_UNSUPPORTED) {
|
||||
fprintf (output->ostream, "<avgdepth>%.2f</avgdepth>\n",
|
||||
convert_depth(avgdepth, output->units));
|
||||
}
|
||||
|
||||
// Parse the temperature.
|
||||
message ("Parsing the temperature.\n");
|
||||
for (unsigned int i = 0; i < 3; ++i) {
|
||||
@ -338,19 +301,11 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
"<gasmix>\n"
|
||||
" <he>%.1f</he>\n"
|
||||
" <o2>%.1f</o2>\n"
|
||||
" <n2>%.1f</n2>\n",
|
||||
" <n2>%.1f</n2>\n"
|
||||
"</gasmix>\n",
|
||||
gasmix.helium * 100.0,
|
||||
gasmix.oxygen * 100.0,
|
||||
gasmix.nitrogen * 100.0);
|
||||
if (gasmix.usage) {
|
||||
const char *usage[] = {"none", "oxygen", "diluent", "sidemount"};
|
||||
fprintf (output->ostream,
|
||||
" <usage>%s</usage>\n",
|
||||
usage[gasmix.usage]);
|
||||
}
|
||||
fprintf (output->ostream,
|
||||
"</gasmix>\n");
|
||||
|
||||
}
|
||||
|
||||
// Parse the tanks.
|
||||
@ -378,12 +333,6 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
" <gasmix>%u</gasmix>\n",
|
||||
tank.gasmix);
|
||||
}
|
||||
if (tank.usage) {
|
||||
const char *usage[] = {"none", "oxygen", "diluent", "sidemount"};
|
||||
fprintf (output->ostream,
|
||||
" <usage>%s</usage>\n",
|
||||
usage[tank.usage]);
|
||||
}
|
||||
if (tank.type != DC_TANKVOLUME_NONE) {
|
||||
fprintf (output->ostream,
|
||||
" <type>%s</type>\n"
|
||||
@ -411,35 +360,11 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
}
|
||||
|
||||
if (status != DC_STATUS_UNSUPPORTED) {
|
||||
const char *names[] = {"freedive", "gauge", "oc", "ccr", "scr"};
|
||||
const char *names[] = {"freedive", "gauge", "oc", "cc"};
|
||||
fprintf (output->ostream, "<divemode>%s</divemode>\n",
|
||||
names[divemode]);
|
||||
}
|
||||
|
||||
// Parse the deco model.
|
||||
message ("Parsing the deco model.\n");
|
||||
dc_decomodel_t decomodel = {DC_DECOMODEL_NONE};
|
||||
status = dc_parser_get_field (parser, DC_FIELD_DECOMODEL, 0, &decomodel);
|
||||
if (status != DC_STATUS_SUCCESS && status != DC_STATUS_UNSUPPORTED) {
|
||||
ERROR ("Error parsing the deco model.");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (status != DC_STATUS_UNSUPPORTED) {
|
||||
const char *names[] = {"none", "buhlmann", "vpm", "rgbm", "dciem"};
|
||||
fprintf (output->ostream, "<decomodel>%s</decomodel>\n",
|
||||
names[decomodel.type]);
|
||||
if (decomodel.type == DC_DECOMODEL_BUHLMANN &&
|
||||
(decomodel.params.gf.low != 0 || decomodel.params.gf.high != 0)) {
|
||||
fprintf (output->ostream, "<gf>%u/%u</gf>\n",
|
||||
decomodel.params.gf.low, decomodel.params.gf.high);
|
||||
}
|
||||
if (decomodel.conservatism) {
|
||||
fprintf (output->ostream, "<conservatism>%d</conservatism>\n",
|
||||
decomodel.conservatism);
|
||||
}
|
||||
}
|
||||
|
||||
// Parse the salinity.
|
||||
message ("Parsing the salinity.\n");
|
||||
dc_salinity_t salinity = {DC_WATER_FRESH, 0.0};
|
||||
@ -450,14 +375,8 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
||||
}
|
||||
|
||||
if (status != DC_STATUS_UNSUPPORTED) {
|
||||
const char *names[] = {"fresh", "salt"};
|
||||
if (salinity.density) {
|
||||
fprintf (output->ostream, "<salinity density=\"%.1f\">%s</salinity>\n",
|
||||
salinity.density, names[salinity.type]);
|
||||
} else {
|
||||
fprintf (output->ostream, "<salinity>%s</salinity>\n",
|
||||
names[salinity.type]);
|
||||
}
|
||||
fprintf (output->ostream, "<salinity type=\"%u\">%.1f</salinity>\n",
|
||||
salinity.type, salinity.density);
|
||||
}
|
||||
|
||||
// Parse the atmospheric pressure.
|
||||
|
||||
@ -26,12 +26,6 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define snprintf _snprintf
|
||||
#define strcasecmp _stricmp
|
||||
#define strncasecmp _strnicmp
|
||||
#endif
|
||||
|
||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||
#define FUNCTION __func__
|
||||
#else
|
||||
|
||||
@ -3,33 +3,58 @@ libdivecomputer_HEADERS = \
|
||||
version.h \
|
||||
common.h \
|
||||
context.h \
|
||||
custom_serial.h \
|
||||
buffer.h \
|
||||
descriptor.h \
|
||||
iterator.h \
|
||||
iostream.h \
|
||||
ioctl.h \
|
||||
serial.h \
|
||||
bluetooth.h \
|
||||
ble.h \
|
||||
irda.h \
|
||||
usb.h \
|
||||
usbhid.h \
|
||||
custom.h \
|
||||
device.h \
|
||||
parser.h \
|
||||
datetime.h \
|
||||
units.h \
|
||||
suunto.h \
|
||||
suunto_solution.h \
|
||||
suunto_eon.h \
|
||||
suunto_eonsteel.h \
|
||||
suunto_vyper.h \
|
||||
suunto_vyper2.h \
|
||||
suunto_d9.h \
|
||||
reefnet.h \
|
||||
reefnet_sensus.h \
|
||||
reefnet_sensuspro.h \
|
||||
reefnet_sensusultra.h \
|
||||
uwatec.h \
|
||||
uwatec_aladin.h \
|
||||
uwatec_memomouse.h \
|
||||
uwatec_smart.h \
|
||||
uwatec_meridian.h \
|
||||
oceanic.h \
|
||||
oceanic_atom2.h \
|
||||
oceanic_veo250.h \
|
||||
oceanic_vtpro.h \
|
||||
mares.h \
|
||||
mares_nemo.h \
|
||||
mares_puck.h \
|
||||
mares_darwin.h \
|
||||
mares_iconhd.h \
|
||||
hw.h \
|
||||
hw_ostc.h \
|
||||
hw_frog.h \
|
||||
hw_ostc3.h \
|
||||
cressi.h \
|
||||
cressi_edy.h \
|
||||
cressi_leonardo.h \
|
||||
zeagle.h \
|
||||
zeagle_n2ition3.h \
|
||||
atomics.h \
|
||||
atomics_cobalt.h \
|
||||
divesystem_idive.h
|
||||
shearwater.h \
|
||||
shearwater_petrel.h \
|
||||
shearwater_predator.h \
|
||||
diverite.h \
|
||||
diverite_nitekq.h \
|
||||
citizen.h \
|
||||
citizen_aqualand.h \
|
||||
divesystem.h \
|
||||
divesystem_idive.h \
|
||||
cochran.h \
|
||||
cochran_commander.h
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2022 Jef Driesen
|
||||
* Copyright (C) 2011 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -19,17 +19,9 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef OCEANS_S1_COMMON_H
|
||||
#define OCEANS_S1_COMMON_H
|
||||
#ifndef ATOMICS_H
|
||||
#define ATOMICS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
#include "atomics_cobalt.h"
|
||||
|
||||
int
|
||||
oceans_s1_getline (char **line, size_t *linelen, const unsigned char **data, size_t *size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* OCEANS_S1_COMMON_H */
|
||||
#endif /* ATOMICS_H */
|
||||
@ -19,10 +19,10 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_ATOMICS_COBALT_H
|
||||
#define DC_ATOMICS_COBALT_H
|
||||
#ifndef ATOMICS_COBALT_H
|
||||
#define ATOMICS_COBALT_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
@ -30,13 +30,22 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
atomics_cobalt_device_open (dc_device_t **device, dc_context_t *context);
|
||||
|
||||
dc_status_t
|
||||
atomics_cobalt_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
atomics_cobalt_device_set_simulation (dc_device_t *device, unsigned int simulation);
|
||||
|
||||
dc_status_t
|
||||
atomics_cobalt_parser_create (dc_parser_t **parser, dc_context_t *context);
|
||||
|
||||
dc_status_t
|
||||
atomics_cobalt_parser_set_calibration (dc_parser_t *parser, double atmospheric, double hydrostatic);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_ATOMICS_COBALT_H */
|
||||
#endif /* ATOMICS_COBALT_H */
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2019 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_BLE_H
|
||||
#define DC_BLE_H
|
||||
|
||||
#include "ioctl.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/**
|
||||
* Get the remote device name.
|
||||
*/
|
||||
#define DC_IOCTL_BLE_GET_NAME DC_IOCTL_IOR('b', 0, DC_IOCTL_SIZE_VARIABLE)
|
||||
|
||||
/**
|
||||
* Get the bluetooth authentication PIN code.
|
||||
*
|
||||
* The data format is a NULL terminated string.
|
||||
*/
|
||||
#define DC_IOCTL_BLE_GET_PINCODE DC_IOCTL_IOR('b', 1, DC_IOCTL_SIZE_VARIABLE)
|
||||
|
||||
/**
|
||||
* Get/set the bluetooth authentication access code.
|
||||
*
|
||||
* The data format is a variable sized byte array.
|
||||
*/
|
||||
#define DC_IOCTL_BLE_GET_ACCESSCODE DC_IOCTL_IOR('b', 2, DC_IOCTL_SIZE_VARIABLE)
|
||||
#define DC_IOCTL_BLE_SET_ACCESSCODE DC_IOCTL_IOW('b', 2, DC_IOCTL_SIZE_VARIABLE)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_BLE_H */
|
||||
@ -1,135 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2013 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_BLUETOOTH_H
|
||||
#define DC_BLUETOOTH_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "iostream.h"
|
||||
#include "iterator.h"
|
||||
#include "descriptor.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/**
|
||||
* The minimum number of bytes (including the terminating null byte) for
|
||||
* formatting a bluetooth address as a string.
|
||||
*/
|
||||
#define DC_BLUETOOTH_SIZE 18
|
||||
|
||||
/**
|
||||
* Bluetooth address (48 bits).
|
||||
*/
|
||||
#if defined (_WIN32) && !defined (__GNUC__)
|
||||
typedef unsigned __int64 dc_bluetooth_address_t;
|
||||
#else
|
||||
typedef unsigned long long dc_bluetooth_address_t;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Convert a bluetooth address to a string.
|
||||
*
|
||||
* The bluetooth address is formatted as XX:XX:XX:XX:XX:XX, where each
|
||||
* XX is a hexadecimal number specifying an octet of the 48-bit address.
|
||||
* The minimum size for the buffer is #DC_BLUETOOTH_SIZE bytes.
|
||||
*
|
||||
* @param[in] address A bluetooth address.
|
||||
* @param[in] str The memory buffer to store the result.
|
||||
* @param[in] size The size of the memory buffer.
|
||||
* @returns The null-terminated string on success, or NULL on failure.
|
||||
*/
|
||||
char *
|
||||
dc_bluetooth_addr2str(dc_bluetooth_address_t address, char *str, size_t size);
|
||||
|
||||
/**
|
||||
* Convert a string to a bluetooth address.
|
||||
*
|
||||
* The string is expected to be in the format XX:XX:XX:XX:XX:XX, where
|
||||
* each XX is a hexadecimal number specifying an octet of the 48-bit
|
||||
* address.
|
||||
*
|
||||
* @param[in] address A null-terminated string.
|
||||
* @returns The bluetooth address on success, or zero on failure.
|
||||
*/
|
||||
dc_bluetooth_address_t
|
||||
dc_bluetooth_str2addr(const char *address);
|
||||
|
||||
/**
|
||||
* Opaque object representing a bluetooth device.
|
||||
*/
|
||||
typedef struct dc_bluetooth_device_t dc_bluetooth_device_t;
|
||||
|
||||
/**
|
||||
* Get the address of the bluetooth device.
|
||||
*
|
||||
* @param[in] device A valid bluetooth device.
|
||||
*/
|
||||
dc_bluetooth_address_t
|
||||
dc_bluetooth_device_get_address (dc_bluetooth_device_t *device);
|
||||
|
||||
/**
|
||||
* Get the name of the bluetooth device.
|
||||
*
|
||||
* @param[in] device A valid bluetooth device.
|
||||
*/
|
||||
const char *
|
||||
dc_bluetooth_device_get_name (dc_bluetooth_device_t *device);
|
||||
|
||||
/**
|
||||
* Destroy the bluetooth device and free all resources.
|
||||
*
|
||||
* @param[in] device A valid bluetooth device.
|
||||
*/
|
||||
void
|
||||
dc_bluetooth_device_free (dc_bluetooth_device_t *device);
|
||||
|
||||
/**
|
||||
* Create an iterator to enumerate the bluetooth devices.
|
||||
*
|
||||
* @param[out] iterator A location to store the iterator.
|
||||
* @param[in] context A valid context object.
|
||||
* @param[in] descriptor A valid device descriptor or NULL.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_bluetooth_iterator_new (dc_iterator_t **iterator, dc_context_t *context, dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Open an bluetooth connection.
|
||||
*
|
||||
* @param[out] iostream A location to store the bluetooth connection.
|
||||
* @param[in] context A valid context object.
|
||||
* @param[in] address The bluetooth device address.
|
||||
* @param[in] port The bluetooth port number.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_bluetooth_open (dc_iostream_t **iostream, dc_context_t *context, dc_bluetooth_address_t address, unsigned int port);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_BLUETOOTH_H */
|
||||
@ -51,9 +51,6 @@ dc_buffer_append (dc_buffer_t *buffer, const unsigned char data[], size_t size);
|
||||
int
|
||||
dc_buffer_prepend (dc_buffer_t *buffer, const unsigned char data[], size_t size);
|
||||
|
||||
int
|
||||
dc_buffer_insert (dc_buffer_t *buffer, size_t offset, const unsigned char data[], size_t size);
|
||||
|
||||
int
|
||||
dc_buffer_slice (dc_buffer_t *buffer, size_t offset, size_t size);
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2023 Janice McLaughlin
|
||||
* Copyright (C) 2014 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -18,24 +18,10 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
// test 01
|
||||
|
||||
#ifndef PELAGIC_I330R_H
|
||||
#define PELAGIC_I330R_H
|
||||
#ifndef CITIZEN_H
|
||||
#define CITIZEN_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "citizen_aqualand.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
pelagic_i330r_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* PELAGIC_I330R_H */
|
||||
#endif /* CITIZEN_H */
|
||||
@ -22,20 +22,19 @@
|
||||
#ifndef CITIZEN_AQUALAND_H
|
||||
#define CITIZEN_AQUALAND_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
citizen_aqualand_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
citizen_aqualand_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
citizen_aqualand_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size);
|
||||
citizen_aqualand_parser_create (dc_parser_t **parser, dc_context_t *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
27
include/libdivecomputer/cochran.h
Normal file
27
include/libdivecomputer/cochran.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2014 John Van Ostrand
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef COCHRAN_H
|
||||
#define COCHRAN_H
|
||||
|
||||
#include "cochran_commander.h"
|
||||
|
||||
#endif /* COCHRAN_H */
|
||||
@ -22,20 +22,19 @@
|
||||
#ifndef COCHRAN_COMMANDER_H
|
||||
#define COCHRAN_COMMANDER_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
cochran_commander_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
cochran_commander_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
cochran_commander_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size, unsigned int model);
|
||||
cochran_commander_parser_create (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@ -41,20 +41,6 @@ typedef enum dc_status_t {
|
||||
DC_STATUS_CANCELLED = -10
|
||||
} dc_status_t;
|
||||
|
||||
typedef enum dc_transport_t {
|
||||
DC_TRANSPORT_NONE = 0,
|
||||
DC_TRANSPORT_SERIAL = (1 << 0),
|
||||
DC_TRANSPORT_USB = (1 << 1),
|
||||
DC_TRANSPORT_USBHID = (1 << 2),
|
||||
DC_TRANSPORT_IRDA = (1 << 3),
|
||||
DC_TRANSPORT_BLUETOOTH = (1 << 4),
|
||||
DC_TRANSPORT_BLE = (1 << 5),
|
||||
DC_TRANSPORT_USBSTORAGE= (1 << 6),
|
||||
} dc_transport_t;
|
||||
|
||||
// Idiotic enums can't be queried
|
||||
#define DC_TRANSPORT_USBSTORAGE DC_TRANSPORT_USBSTORAGE
|
||||
|
||||
typedef enum dc_family_t {
|
||||
DC_FAMILY_NULL = 0,
|
||||
/* Suunto */
|
||||
@ -72,13 +58,11 @@ typedef enum dc_family_t {
|
||||
DC_FAMILY_UWATEC_ALADIN = (3 << 16),
|
||||
DC_FAMILY_UWATEC_MEMOMOUSE,
|
||||
DC_FAMILY_UWATEC_SMART,
|
||||
DC_FAMILY_UWATEC_MERIDIAN, /* Deprecated: integrated into the Uwatec Smart family. */
|
||||
DC_FAMILY_UWATEC_G2, /* Deprecated: integrated into the Uwatec Smart family. */
|
||||
DC_FAMILY_UWATEC_MERIDIAN,
|
||||
/* Oceanic */
|
||||
DC_FAMILY_OCEANIC_VTPRO = (4 << 16),
|
||||
DC_FAMILY_OCEANIC_VEO250,
|
||||
DC_FAMILY_OCEANIC_ATOM2,
|
||||
DC_FAMILY_PELAGIC_I330R,
|
||||
/* Mares */
|
||||
DC_FAMILY_MARES_NEMO = (5 << 16),
|
||||
DC_FAMILY_MARES_PUCK,
|
||||
@ -91,7 +75,6 @@ typedef enum dc_family_t {
|
||||
/* Cressi */
|
||||
DC_FAMILY_CRESSI_EDY = (7 << 16),
|
||||
DC_FAMILY_CRESSI_LEONARDO,
|
||||
DC_FAMILY_CRESSI_GOA,
|
||||
/* Zeagle */
|
||||
DC_FAMILY_ZEAGLE_N2ITION3 = (8 << 16),
|
||||
/* Atomic Aquatics */
|
||||
@ -107,28 +90,6 @@ typedef enum dc_family_t {
|
||||
DC_FAMILY_DIVESYSTEM_IDIVE = (13 << 16),
|
||||
/* Cochran */
|
||||
DC_FAMILY_COCHRAN_COMMANDER = (14 << 16),
|
||||
/* Tecdiving */
|
||||
DC_FAMILY_TECDIVING_DIVECOMPUTEREU = (15 << 16),
|
||||
/* McLean */
|
||||
DC_FAMILY_MCLEAN_EXTREME = (16 << 16),
|
||||
/* Liquivision */
|
||||
DC_FAMILY_LIQUIVISION_LYNX = (17 << 16),
|
||||
/* Sporasub */
|
||||
DC_FAMILY_SPORASUB_SP2 = (18 << 16),
|
||||
/* Deep Six */
|
||||
DC_FAMILY_DEEPSIX_EXCURSION = (19 << 16),
|
||||
/* Seac Screen */
|
||||
DC_FAMILY_SEAC_SCREEN = (20 << 16),
|
||||
/* Deepblu Cosmiq */
|
||||
DC_FAMILY_DEEPBLU_COSMIQ = (21 << 16),
|
||||
/* Oceans S1 */
|
||||
DC_FAMILY_OCEANS_S1 = (22 << 16),
|
||||
/* Divesoft Freedom */
|
||||
DC_FAMILY_DIVESOFT_FREEDOM = (23 << 16),
|
||||
|
||||
// Not merged upstream yet
|
||||
/* Garmin */
|
||||
DC_FAMILY_GARMIN = (100 << 16),
|
||||
} dc_family_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
#define DC_CONTEXT_H
|
||||
|
||||
#include "common.h"
|
||||
#include "custom_serial.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -47,15 +48,15 @@ dc_context_new (dc_context_t **context);
|
||||
dc_status_t
|
||||
dc_context_free (dc_context_t *context);
|
||||
|
||||
dc_status_t
|
||||
dc_context_set_custom_serial (dc_context_t *context, dc_custom_serial_t *custom_serial);
|
||||
|
||||
dc_status_t
|
||||
dc_context_set_loglevel (dc_context_t *context, dc_loglevel_t loglevel);
|
||||
|
||||
dc_status_t
|
||||
dc_context_set_logfunc (dc_context_t *context, dc_logfunc_t logfunc, void *userdata);
|
||||
|
||||
unsigned int
|
||||
dc_context_get_transports (dc_context_t *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
28
include/libdivecomputer/cressi.h
Normal file
28
include/libdivecomputer/cressi.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2009 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef CRESSI_H
|
||||
#define CRESSI_H
|
||||
|
||||
#include "cressi_edy.h"
|
||||
#include "cressi_leonardo.h"
|
||||
|
||||
#endif /* CRESSI_H */
|
||||
@ -22,20 +22,19 @@
|
||||
#ifndef CRESSI_EDY_H
|
||||
#define CRESSI_EDY_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
cressi_edy_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
cressi_edy_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
cressi_edy_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size, unsigned int model);
|
||||
cressi_edy_parser_create (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@ -22,20 +22,25 @@
|
||||
#ifndef CRESSI_LEONARDO_H
|
||||
#define CRESSI_LEONARDO_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
cressi_leonardo_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
cressi_leonardo_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
cressi_leonardo_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size, unsigned int model);
|
||||
cressi_leonardo_extract_dives (dc_device_t *abstract, const unsigned char data[], unsigned int size, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
cressi_leonardo_parser_create (dc_parser_t **parser, dc_context_t *context);
|
||||
|
||||
dc_status_t
|
||||
cressi_leonardo_parser_create2 (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2017 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_CUSTOM_H
|
||||
#define DC_CUSTOM_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "iostream.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef struct dc_custom_cbs_t {
|
||||
dc_status_t (*set_timeout) (void *userdata, int timeout);
|
||||
dc_status_t (*set_break) (void *userdata, unsigned int value);
|
||||
dc_status_t (*set_dtr) (void *userdata, unsigned int value);
|
||||
dc_status_t (*set_rts) (void *userdata, unsigned int value);
|
||||
dc_status_t (*get_lines) (void *userdata, unsigned int *value);
|
||||
dc_status_t (*get_available) (void *userdata, size_t *value);
|
||||
dc_status_t (*configure) (void *userdata, unsigned int baudrate, unsigned int databits, dc_parity_t parity, dc_stopbits_t stopbits, dc_flowcontrol_t flowcontrol);
|
||||
dc_status_t (*poll) (void *userdata, int timeout);
|
||||
dc_status_t (*read) (void *userdata, void *data, size_t size, size_t *actual);
|
||||
dc_status_t (*write) (void *userdata, const void *data, size_t size, size_t *actual);
|
||||
dc_status_t (*ioctl) (void *userdata, unsigned int request, void *data, size_t size);
|
||||
dc_status_t (*flush) (void *userdata);
|
||||
dc_status_t (*purge) (void *userdata, dc_direction_t direction);
|
||||
dc_status_t (*sleep) (void *userdata, unsigned int milliseconds);
|
||||
dc_status_t (*close) (void *userdata);
|
||||
} dc_custom_cbs_t;
|
||||
|
||||
/**
|
||||
* Create a custom I/O stream.
|
||||
*
|
||||
* @param[out] iostream A location to store the custom I/O stream.
|
||||
* @param[in] context A valid context object.
|
||||
* @param[in] callbacks The callback functions to call.
|
||||
* @param[in] userdata User data to pass to the callback functions.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_custom_open (dc_iostream_t **iostream, dc_context_t *context, dc_transport_t transport, const dc_custom_cbs_t *callbacks, void *userdata);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_CUSTOM_H */
|
||||
90
include/libdivecomputer/custom_serial.h
Normal file
90
include/libdivecomputer/custom_serial.h
Normal file
@ -0,0 +1,90 @@
|
||||
#ifndef CUSTOM_SERIAL_H
|
||||
#define CUSTOM_SERIAL_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
// Verbatim copy from src/serial.h
|
||||
|
||||
#ifndef __SERIAL_TYPES__
|
||||
#define __SERIAL_TYPES__
|
||||
// Don't re-declare when we're internal
|
||||
/**
|
||||
* The parity checking scheme.
|
||||
*/
|
||||
typedef enum dc_parity_t {
|
||||
DC_PARITY_NONE, /**< No parity */
|
||||
DC_PARITY_ODD, /**< Odd parity */
|
||||
DC_PARITY_EVEN, /**< Even parity */
|
||||
DC_PARITY_MARK, /**< Mark parity (always 1) */
|
||||
DC_PARITY_SPACE /**< Space parity (alwasy 0) */
|
||||
} dc_parity_t;
|
||||
|
||||
/**
|
||||
* The number of stop bits.
|
||||
*/
|
||||
typedef enum dc_stopbits_t {
|
||||
DC_STOPBITS_ONE, /**< 1 stop bit */
|
||||
DC_STOPBITS_ONEPOINTFIVE, /**< 1.5 stop bits*/
|
||||
DC_STOPBITS_TWO /**< 2 stop bits */
|
||||
} dc_stopbits_t;
|
||||
|
||||
/**
|
||||
* The flow control.
|
||||
*/
|
||||
typedef enum dc_flowcontrol_t {
|
||||
DC_FLOWCONTROL_NONE, /**< No flow control */
|
||||
DC_FLOWCONTROL_HARDWARE, /**< Hardware (RTS/CTS) flow control */
|
||||
DC_FLOWCONTROL_SOFTWARE /**< Software (XON/XOFF) flow control */
|
||||
} dc_flowcontrol_t;
|
||||
|
||||
/**
|
||||
* The direction of the data transmission.
|
||||
*/
|
||||
typedef enum dc_direction_t {
|
||||
DC_DIRECTION_INPUT = 0x01, /**< Input direction */
|
||||
DC_DIRECTION_OUTPUT = 0x02, /**< Output direction */
|
||||
DC_DIRECTION_ALL = DC_DIRECTION_INPUT | DC_DIRECTION_OUTPUT /**< All directions */
|
||||
} dc_direction_t;
|
||||
|
||||
/**
|
||||
* The serial line signals.
|
||||
*/
|
||||
typedef enum dc_line_t {
|
||||
DC_LINE_DCD = 0x01, /**< Data carrier detect */
|
||||
DC_LINE_CTS = 0x02, /**< Clear to send */
|
||||
DC_LINE_DSR = 0x04, /**< Data set ready */
|
||||
DC_LINE_RNG = 0x08, /**< Ring indicator */
|
||||
} dc_line_t;
|
||||
|
||||
#endif /* __SERIAL_TYPES__ */
|
||||
|
||||
typedef struct dc_custom_serial_t
|
||||
{
|
||||
void *userdata;
|
||||
dc_status_t (*open) (void **userdata, const char *name);
|
||||
dc_status_t (*close) (void **userdata);
|
||||
dc_status_t (*read) (void **userdata, void* data, size_t size, size_t *actual);
|
||||
dc_status_t (*write) (void **userdata, const void* data, size_t size, size_t *actual);
|
||||
dc_status_t (*purge) (void **userdata, dc_direction_t);
|
||||
dc_status_t (*get_available) (void **userdata, size_t *value);
|
||||
dc_status_t (*set_timeout) (void **userdata, long timeout);
|
||||
dc_status_t (*configure) (void **userdata, unsigned int baudrate, unsigned int databits, dc_parity_t parity, dc_stopbits_t stopbits, dc_flowcontrol_t flowcontrol);
|
||||
dc_status_t (*set_dtr) (void **userdata, int level);
|
||||
dc_status_t (*set_rts) (void **userdata, int level);
|
||||
dc_status_t (*set_halfduplex) (void **userdata, unsigned int value);
|
||||
dc_status_t (*set_break) (void **userdata, unsigned int level);
|
||||
//dc_serial_set_latency (dc_serial_t *device, unsigned int milliseconds) - Unused
|
||||
//dc_serial_get_lines (dc_serial_t *device, unsigned int *value) - Unused
|
||||
//dc_serial_flush (dc_serial_t *device) - No device interaction
|
||||
//dc_serial_sleep (dc_serial_t *device, unsigned int timeout) - No device interaction
|
||||
} dc_custom_serial_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* CUSTOM_SERIAL_H */
|
||||
@ -22,14 +22,10 @@
|
||||
#ifndef DC_DATETIME_H
|
||||
#define DC_DATETIME_H
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#define DC_TIMEZONE_NONE INT_MIN
|
||||
|
||||
#if defined (_WIN32) && !defined (__GNUC__)
|
||||
typedef __int64 dc_ticks_t;
|
||||
#else
|
||||
@ -43,7 +39,6 @@ typedef struct dc_datetime_t {
|
||||
int hour;
|
||||
int minute;
|
||||
int second;
|
||||
int timezone;
|
||||
} dc_datetime_t;
|
||||
|
||||
dc_ticks_t
|
||||
|
||||
@ -29,95 +29,38 @@
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/**
|
||||
* Opaque object representing a supported dive computer.
|
||||
*/
|
||||
typedef enum dc_transport_t {
|
||||
DC_TRANSPORT_NONE,
|
||||
DC_TRANSPORT_SERIAL,
|
||||
DC_TRANSPORT_USB,
|
||||
DC_TRANSPORT_IRDA
|
||||
} dc_transport_t;
|
||||
|
||||
typedef struct dc_descriptor_t dc_descriptor_t;
|
||||
|
||||
/**
|
||||
* Create an iterator to enumerate the supported dive computers.
|
||||
*
|
||||
* @param[out] iterator A location to store the iterator.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_descriptor_iterator (dc_iterator_t **iterator);
|
||||
|
||||
/**
|
||||
* Free the device descriptor.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
*/
|
||||
void
|
||||
dc_descriptor_free (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Get the vendor name of the dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @returns The vendor name of the dive computer on success, or NULL on failure.
|
||||
*/
|
||||
const char *
|
||||
dc_descriptor_get_vendor (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Get the product name of the dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @returns The product name of the dive computer on success, or NULL on
|
||||
* failure.
|
||||
*/
|
||||
const char *
|
||||
dc_descriptor_get_product (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Get the family type of the dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @returns The family type of the dive computer on success, or DC_FAMILY_NULL
|
||||
* on failure.
|
||||
*/
|
||||
dc_family_t
|
||||
dc_descriptor_get_type (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Get the model number of the dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @returns The model number of the dive computer on success, or zero on
|
||||
* failure.
|
||||
*/
|
||||
unsigned int
|
||||
dc_descriptor_get_model (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Get all transports supported by the dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @returns A bitmask with all the transports supported by the dive computer on
|
||||
* success, or DC_TRANSPORT_NONE on failure.
|
||||
*/
|
||||
unsigned int
|
||||
dc_descriptor_get_transports (dc_descriptor_t *descriptor);
|
||||
dc_descriptor_get_serial (dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Check if a low-level I/O device matches a supported dive computer.
|
||||
*
|
||||
* @param[in] descriptor A valid device descriptor.
|
||||
* @param[in] transport The transport type of the I/O device.
|
||||
* @param[in] userdata A pointer to a transport specific data structure:
|
||||
* - DC_TRANSPORT_SERIAL: Name of the device node (string)
|
||||
* - DC_TRANSPORT_USB: USB VID/PID (#dc_usb_desc_t)
|
||||
* - DC_TRANSPORT_USBHID: USB VID/PID (#dc_usbhid_desc_t)
|
||||
* - DC_TRANSPORT_IRDA: IrDA device name (string)
|
||||
* - DC_TRANSPORT_BLUETOOTH: Bluetooth device name (string)
|
||||
* - DC_TRANSPORT_BLE: Bluetooth device name (string)
|
||||
* @returns Non-zero if the device matches a supported dive computer, or zero if
|
||||
* there is no match.
|
||||
*/
|
||||
int
|
||||
dc_descriptor_filter (dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
|
||||
dc_transport_t
|
||||
dc_descriptor_get_transport (dc_descriptor_t *descriptor);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@ -25,7 +25,6 @@
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "descriptor.h"
|
||||
#include "iostream.h"
|
||||
#include "buffer.h"
|
||||
#include "datetime.h"
|
||||
|
||||
@ -71,7 +70,7 @@ typedef void (*dc_event_callback_t) (dc_device_t *device, dc_event_type_t event,
|
||||
typedef int (*dc_dive_callback_t) (const unsigned char *data, unsigned int size, const unsigned char *fingerprint, unsigned int fsize, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
dc_device_open (dc_device_t **out, dc_context_t *context, dc_descriptor_t *descriptor, dc_iostream_t *iostream);
|
||||
dc_device_open (dc_device_t **out, dc_context_t *context, dc_descriptor_t *descriptor, const char *name);
|
||||
|
||||
dc_family_t
|
||||
dc_device_get_type (dc_device_t *device);
|
||||
@ -85,6 +84,9 @@ dc_device_set_events (dc_device_t *device, unsigned int events, dc_event_callbac
|
||||
dc_status_t
|
||||
dc_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
dc_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
dc_device_read (dc_device_t *device, unsigned int address, unsigned char data[], unsigned int size);
|
||||
|
||||
@ -97,9 +99,6 @@ dc_device_dump (dc_device_t *device, dc_buffer_t *buffer);
|
||||
dc_status_t
|
||||
dc_device_foreach (dc_device_t *device, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
dc_device_timesync (dc_device_t *device, const dc_datetime_t *datetime);
|
||||
|
||||
dc_status_t
|
||||
dc_device_close (dc_device_t *device);
|
||||
|
||||
|
||||
27
include/libdivecomputer/diverite.h
Normal file
27
include/libdivecomputer/diverite.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2013 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DIVERITE_H
|
||||
#define DIVERITE_H
|
||||
|
||||
#include "diverite_nitekq.h"
|
||||
|
||||
#endif /* DIVERITE_H */
|
||||
@ -22,20 +22,22 @@
|
||||
#ifndef DIVERITE_NITEKQ_H
|
||||
#define DIVERITE_NITEKQ_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
diverite_nitekq_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
diverite_nitekq_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
diverite_nitekq_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size);
|
||||
diverite_nitekq_extract_dives (dc_device_t *device, const unsigned char data[], unsigned int size, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
diverite_nitekq_parser_create (dc_parser_t **parser, dc_context_t *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
27
include/libdivecomputer/divesystem.h
Normal file
27
include/libdivecomputer/divesystem.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2014 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DIVESYSTEM_H
|
||||
#define DIVESYSTEM_H
|
||||
|
||||
#include "divesystem_idive.h"
|
||||
|
||||
#endif /* DIVESYSTEM_H */
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2019 Jef Driesen
|
||||
* Copyright (C) 2014 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@ -19,20 +19,30 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_DIVESYSTEM_IDIVE_H
|
||||
#define DC_DIVESYSTEM_IDIVE_H
|
||||
#ifndef DIVESYSTEM_IDIVE_H
|
||||
#define DIVESYSTEM_IDIVE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
divesystem_idive_device_fwupdate (dc_device_t *abstract, const char *filename);
|
||||
divesystem_idive_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
divesystem_idive_device_open2 (dc_device_t **device, dc_context_t *context, const char *name, unsigned int model);
|
||||
|
||||
dc_status_t
|
||||
divesystem_idive_parser_create (dc_parser_t **parser, dc_context_t *context);
|
||||
|
||||
dc_status_t
|
||||
divesystem_idive_parser_create2 (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_DIVESYSTEM_IDIVE_H */
|
||||
#endif /* DIVESYSTEM_IDIVE_H */
|
||||
|
||||
29
include/libdivecomputer/hw.h
Normal file
29
include/libdivecomputer/hw.h
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2009 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef HW_H
|
||||
#define HW_H
|
||||
|
||||
#include "hw_ostc.h"
|
||||
#include "hw_frog.h"
|
||||
#include "hw_ostc3.h"
|
||||
|
||||
#endif /* HW_H */
|
||||
@ -19,12 +19,13 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_HW_FROG_H
|
||||
#define DC_HW_FROG_H
|
||||
#ifndef HW_FROG_H
|
||||
#define HW_FROG_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "datetime.h"
|
||||
#include "parser.h"
|
||||
#include "buffer.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -33,9 +34,15 @@ extern "C" {
|
||||
#define HW_FROG_DISPLAY_SIZE 15
|
||||
#define HW_FROG_CUSTOMTEXT_SIZE 13
|
||||
|
||||
dc_status_t
|
||||
hw_frog_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
hw_frog_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
hw_frog_device_clock (dc_device_t *device, const dc_datetime_t *datetime);
|
||||
|
||||
dc_status_t
|
||||
hw_frog_device_display (dc_device_t *device, const char *text);
|
||||
|
||||
@ -45,4 +52,4 @@ hw_frog_device_customtext (dc_device_t *device, const char *text);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_HW_FROG_H */
|
||||
#endif /* HW_FROG_H */
|
||||
|
||||
@ -19,12 +19,12 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_HW_OSTC_H
|
||||
#define DC_HW_OSTC_H
|
||||
#ifndef HW_OSTC_H
|
||||
#define HW_OSTC_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "datetime.h"
|
||||
#include "parser.h"
|
||||
#include "buffer.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -40,9 +40,15 @@ typedef enum hw_ostc_format_t {
|
||||
HW_OSTC_FORMAT_RGB24
|
||||
} hw_ostc_format_t;
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_device_md2hash (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_device_clock (dc_device_t *device, const dc_datetime_t *datetime);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_device_eeprom_read (dc_device_t *device, unsigned int bank, unsigned char data[], unsigned int size);
|
||||
|
||||
@ -55,10 +61,16 @@ hw_ostc_device_reset (dc_device_t *device);
|
||||
dc_status_t
|
||||
hw_ostc_device_screenshot (dc_device_t *device, dc_buffer_t *buffer, hw_ostc_format_t format);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_extract_dives (dc_device_t *device, const unsigned char data[], unsigned int size, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_parser_create (dc_parser_t **parser, dc_context_t *context, unsigned int serial, unsigned int hwos);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc_device_fwupdate (dc_device_t *abstract, const char *filename);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_HW_OSTC_H */
|
||||
#endif /* HW_OSTC_H */
|
||||
|
||||
@ -19,14 +19,13 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_HW_OSTC3_H
|
||||
#define DC_HW_OSTC3_H
|
||||
#ifndef HW_OSTC3_H
|
||||
#define HW_OSTC3_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "datetime.h"
|
||||
#include "parser.h"
|
||||
#include "buffer.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -35,12 +34,18 @@ extern "C" {
|
||||
#define HW_OSTC3_DISPLAY_SIZE 16
|
||||
#define HW_OSTC3_CUSTOMTEXT_SIZE 60
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_open (dc_device_t **device, dc_context_t *context, const char *name);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_hardware (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_clock (dc_device_t *device, const dc_datetime_t *datetime);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_display (dc_device_t *device, const char *text);
|
||||
|
||||
@ -57,9 +62,12 @@ dc_status_t
|
||||
hw_ostc3_device_config_reset (dc_device_t *abstract);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_device_fwupdate (dc_device_t *abstract, const char *filename, bool forceUpdate);
|
||||
hw_ostc3_device_fwupdate (dc_device_t *abstract, const char *filename);
|
||||
|
||||
dc_status_t
|
||||
hw_ostc3_parser_create (dc_parser_t **out, dc_context_t *context, unsigned int serial, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_HW_OSTC3_H */
|
||||
#endif /* HW_OSTC3_H */
|
||||
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2019 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_IOCTL_H
|
||||
#define DC_IOCTL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*
|
||||
* Ioctl direction bits.
|
||||
*
|
||||
* Note: WRITE means the application is writing and the driver is
|
||||
* reading. READ means the application is reading and the driver is
|
||||
* writing.
|
||||
*/
|
||||
#define DC_IOCTL_DIR_NONE 0u
|
||||
#define DC_IOCTL_DIR_READ 1u
|
||||
#define DC_IOCTL_DIR_WRITE 2u
|
||||
|
||||
/*
|
||||
* Ioctl variable size bits.
|
||||
*/
|
||||
#define DC_IOCTL_SIZE_VARIABLE 0
|
||||
|
||||
/*
|
||||
* Helper macro to encode ioctl numbers.
|
||||
*/
|
||||
#define DC_IOCTL_BASE(dir,type,nr,size) \
|
||||
(((dir) << 30) | \
|
||||
((size) << 16) | \
|
||||
((type) << 8) | \
|
||||
((nr) << 0))
|
||||
|
||||
/*
|
||||
* Macros to encode ioctl numbers.
|
||||
*/
|
||||
#define DC_IOCTL_IO(type,nr) DC_IOCTL_BASE(DC_IOCTL_DIR_NONE, (type), (nr), 0)
|
||||
#define DC_IOCTL_IOR(type,nr,size) DC_IOCTL_BASE(DC_IOCTL_DIR_READ, (type), (nr), (size))
|
||||
#define DC_IOCTL_IOW(type,nr,size) DC_IOCTL_BASE(DC_IOCTL_DIR_WRITE, (type), (nr), (size))
|
||||
#define DC_IOCTL_IORW(type,nr,size) DC_IOCTL_BASE(DC_IOCTL_DIR_READ | DC_IOCTL_DIR_WRITE, (type), (nr), (size))
|
||||
|
||||
/*
|
||||
* Macros to decode ioctl numbers.
|
||||
*/
|
||||
#define DC_IOCTL_DIR(request) (((request) >> 30) & 0x0003)
|
||||
#define DC_IOCTL_SIZE(request) (((request) >> 16) & 0x3FFF)
|
||||
#define DC_IOCTL_TYPE(request) (((request) >> 8) & 0x00FF)
|
||||
#define DC_IOCTL_NR(request) (((request) >> 0) & 0x00FF)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_IOCTL_H */
|
||||
@ -1,92 +0,0 @@
|
||||
/*
|
||||
* libdivecomputer
|
||||
*
|
||||
* Copyright (C) 2008 Jef Driesen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef DC_IRDA_H
|
||||
#define DC_IRDA_H
|
||||
|
||||
#include "common.h"
|
||||
#include "context.h"
|
||||
#include "iostream.h"
|
||||
#include "iterator.h"
|
||||
#include "descriptor.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/**
|
||||
* Opaque object representing an IrDA device.
|
||||
*/
|
||||
typedef struct dc_irda_device_t dc_irda_device_t;
|
||||
|
||||
/**
|
||||
* Get the address of the IrDA device.
|
||||
*
|
||||
* @param[in] device A valid IrDA device.
|
||||
*/
|
||||
unsigned int
|
||||
dc_irda_device_get_address (dc_irda_device_t *device);
|
||||
|
||||
/**
|
||||
* Get the name of the IrDA device.
|
||||
*
|
||||
* @param[in] device A valid IrDA device.
|
||||
*/
|
||||
const char *
|
||||
dc_irda_device_get_name (dc_irda_device_t *device);
|
||||
|
||||
/**
|
||||
* Destroy the IrDA device and free all resources.
|
||||
*
|
||||
* @param[in] device A valid IrDA device.
|
||||
*/
|
||||
void
|
||||
dc_irda_device_free (dc_irda_device_t *device);
|
||||
|
||||
/**
|
||||
* Create an iterator to enumerate the IrDA devices.
|
||||
*
|
||||
* @param[out] iterator A location to store the iterator.
|
||||
* @param[in] context A valid context object.
|
||||
* @param[in] descriptor A valid device descriptor or NULL.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_irda_iterator_new (dc_iterator_t **iterator, dc_context_t *context, dc_descriptor_t *descriptor);
|
||||
|
||||
/**
|
||||
* Open an IrDA connection.
|
||||
*
|
||||
* @param[out] iostream A location to store the IrDA connection.
|
||||
* @param[in] context A valid context object.
|
||||
* @param[in] address The IrDA device address.
|
||||
* @param[in] lsap The IrDA LSAP number.
|
||||
* @returns #DC_STATUS_SUCCESS on success, or another #dc_status_t code
|
||||
* on failure.
|
||||
*/
|
||||
dc_status_t
|
||||
dc_irda_open (dc_iostream_t **iostream, dc_context_t *context, unsigned int address, unsigned int lsap);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* DC_IRDA_H */
|
||||
@ -19,22 +19,12 @@
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef SUUNTO_VYPER2_H
|
||||
#define SUUNTO_VYPER2_H
|
||||
#ifndef MARES_H
|
||||
#define MARES_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
#include "mares_nemo.h"
|
||||
#include "mares_puck.h"
|
||||
#include "mares_darwin.h"
|
||||
#include "mares_iconhd.h"
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/suunto_vyper2.h>
|
||||
|
||||
dc_status_t
|
||||
suunto_vyper2_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#endif /* SUUNTO_VYPER2_H */
|
||||
#endif /* MARES_H */
|
||||
@ -22,20 +22,22 @@
|
||||
#ifndef MARES_DARWIN_H
|
||||
#define MARES_DARWIN_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
mares_darwin_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream, unsigned int model);
|
||||
mares_darwin_device_open (dc_device_t **device, dc_context_t *context, const char *name, unsigned int model);
|
||||
|
||||
dc_status_t
|
||||
mares_darwin_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size, unsigned int model);
|
||||
mares_darwin_extract_dives (dc_device_t *device, const unsigned char data[], unsigned int size, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
mares_darwin_parser_create (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@ -22,20 +22,22 @@
|
||||
#ifndef MARES_ICONHD_H
|
||||
#define MARES_ICONHD_H
|
||||
|
||||
#include <libdivecomputer/context.h>
|
||||
#include <libdivecomputer/iostream.h>
|
||||
#include <libdivecomputer/device.h>
|
||||
#include <libdivecomputer/parser.h>
|
||||
#include "context.h"
|
||||
#include "device.h"
|
||||
#include "parser.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
dc_status_t
|
||||
mares_iconhd_device_open (dc_device_t **device, dc_context_t *context, dc_iostream_t *iostream);
|
||||
mares_iconhd_device_open (dc_device_t **device, dc_context_t *context, const char *name, unsigned int model);
|
||||
|
||||
dc_status_t
|
||||
mares_iconhd_parser_create (dc_parser_t **parser, dc_context_t *context, const unsigned char data[], size_t size, unsigned int model, unsigned int serial);
|
||||
mares_iconhd_extract_dives (dc_device_t *device, const unsigned char data[], unsigned int size, dc_dive_callback_t callback, void *userdata);
|
||||
|
||||
dc_status_t
|
||||
mares_iconhd_parser_create (dc_parser_t **parser, dc_context_t *context, unsigned int model);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user