Compare commits
776 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72a88b18d9 | ||
|
|
eb4b082b1b | ||
|
|
8fe598e1b0 | ||
|
|
1663997111 | ||
|
|
f20d9cb972 | ||
|
|
4516842a5a | ||
|
|
9a603fa8cf | ||
|
|
89a28427d6 | ||
|
|
4914f6bff3 | ||
|
|
dcf842cd9d | ||
|
|
8745a3b95a | ||
|
|
a86cb92ed8 | ||
|
|
b8c3a09c6f | ||
|
|
6903a66cc5 | ||
|
|
9070da3570 | ||
|
|
8e349d4046 | ||
|
|
47f6949db1 | ||
|
|
9070b7d035 | ||
|
|
4cc0bc25ae | ||
|
|
f49af5208c | ||
|
|
b9d7684552 | ||
|
|
ae292253ba | ||
|
|
a91a7dbc38 | ||
|
|
121c7c12fb | ||
|
|
f42449b101 | ||
|
|
aa2dbac509 | ||
|
|
60a9b889de | ||
|
|
4139509238 | ||
|
|
1ba7e5cad0 | ||
|
|
04fe252625 | ||
|
|
9090f713b4 | ||
|
|
00b0169578 | ||
|
|
e0cf41a14e | ||
|
|
f5f855d428 | ||
|
|
811ae7de82 | ||
|
|
1d0aeecf65 | ||
|
|
de6696bc7f | ||
|
|
cfe345aa8e | ||
|
|
d47e1ce02b | ||
|
|
08d8c3e132 | ||
|
|
2d9008aff7 | ||
|
|
e1762fc8bd | ||
|
|
3c50e91a10 | ||
|
|
cb0164150e | ||
|
|
e83732e200 | ||
|
|
a7e7439cab | ||
|
|
072f0d4242 | ||
|
|
baa1c494c1 | ||
|
|
330cb88952 | ||
|
|
37421a1b9a | ||
|
|
fe9b47f4bd | ||
|
|
ed871137b1 | ||
|
|
4a9be44afd | ||
|
|
a985b11859 | ||
|
|
b2310e62d6 | ||
|
|
301fdbe364 | ||
|
|
beb348dbf6 | ||
|
|
5d36cc0798 | ||
|
|
993283d1c8 | ||
|
|
323804d5e6 | ||
|
|
ecc9e0b09b | ||
|
|
8bfbb94087 | ||
|
|
9cde393e5f | ||
|
|
9bc742d3ac | ||
|
|
a4cd21b811 | ||
|
|
f77e9c03fc | ||
|
|
f818a5a92a | ||
|
|
ceaaba3e77 | ||
|
|
0afd62d7af | ||
|
|
3a68af418e | ||
|
|
ff0328537e | ||
|
|
3d82d6796f | ||
|
|
25bd1f9853 | ||
|
|
c16530b8ab | ||
|
|
d4402aa296 | ||
|
|
13705f2b2d | ||
|
|
ee147afceb | ||
|
|
9b7aa813e0 | ||
|
|
63f5a4d652 | ||
|
|
679db0bae6 | ||
|
|
0a4f37770f | ||
|
|
4e24b3a277 | ||
|
|
becb8bd36e | ||
|
|
4b383a778e | ||
|
|
b1ff2c6a8e | ||
|
|
bca8f9e2d2 | ||
|
|
a34e909a84 | ||
|
|
070de23b83 | ||
|
|
db9371cf9f | ||
|
|
49aa12b172 | ||
|
|
2f1b99f2f9 | ||
|
|
6c3bbb2cc7 | ||
|
|
1c8cd096b5 | ||
|
|
40c95ca02a | ||
|
|
72ddd6a439 | ||
|
|
d4472b758f | ||
|
|
b0e77fd05f | ||
|
|
cee9a2e926 | ||
|
|
9c38ae3e01 | ||
|
|
629d567381 | ||
|
|
bec4a747ff | ||
|
|
43f48af418 | ||
|
|
e45c62b028 | ||
|
|
767a2fad91 | ||
|
|
083b1eb8de | ||
|
|
118f6d79ba | ||
|
|
cf221de9b7 | ||
|
|
86fd58c8c6 | ||
|
|
1930b9eb59 | ||
|
|
554855cc7d | ||
|
|
27b471e76b | ||
|
|
00033e4af0 | ||
|
|
d327aea6ff | ||
|
|
12f44f3410 | ||
|
|
2ba9904757 | ||
|
|
255a2dbb9a | ||
|
|
ee78d6f65b | ||
|
|
328812e95b | ||
|
|
98c7887e9c | ||
|
|
5fd9317533 | ||
|
|
9787bb7ac9 | ||
|
|
201be561d4 | ||
|
|
78373d827b | ||
|
|
4e83b1642c | ||
|
|
9eef8c50c0 | ||
|
|
86e9cc3443 | ||
|
|
3ce34a0b6d | ||
|
|
187f8d625b | ||
|
|
fca64faa3c | ||
|
|
e0e3bc8994 | ||
|
|
ceae89e149 | ||
|
|
3414f72f60 | ||
|
|
d0857c49ec | ||
|
|
f59cbf0fe5 | ||
|
|
45b9ee8376 | ||
|
|
cf81ac79b3 | ||
|
|
90bb40e5ea | ||
|
|
bf268d79b4 | ||
|
|
989c992154 | ||
|
|
b1f4ad94eb | ||
|
|
547b1cfd15 | ||
|
|
9019805f52 | ||
|
|
f4fae1b9f6 | ||
|
|
094a225363 | ||
|
|
79c9c5b7f9 | ||
|
|
59a0844ee6 | ||
|
|
ed0b21beae | ||
|
|
755f23fdfa | ||
|
|
db2540485e | ||
|
|
2577afed55 | ||
|
|
2c5ebef594 | ||
|
|
913a65fde6 | ||
|
|
5218d3921a | ||
|
|
6874130743 | ||
|
|
2f3a057969 | ||
|
|
c2102f62d6 | ||
|
|
bf93040ab1 | ||
|
|
8a6abab1da | ||
|
|
005a2501b9 | ||
|
|
9508401971 | ||
|
|
89ae8b94cf | ||
|
|
a99d990117 | ||
|
|
c578e0a158 | ||
|
|
34bc6b1613 | ||
|
|
59dd6a2a56 | ||
|
|
3d388a0a96 | ||
|
|
c5813d624a | ||
|
|
3eedf4d24d | ||
|
|
3e5282bf74 | ||
|
|
ce578cafb9 | ||
|
|
12c77a228e | ||
|
|
6ab140461a | ||
|
|
18f06ea585 | ||
|
|
7fb943ae7f | ||
|
|
95f309a1c9 | ||
|
|
391d4db419 | ||
|
|
972beb52be | ||
|
|
80f22dce0b | ||
|
|
26c43d6d8b | ||
|
|
8451286c17 | ||
|
|
be5bb9e690 | ||
|
|
e6f091909b | ||
|
|
4616e2ed21 | ||
|
|
4b4efb2c07 | ||
|
|
2443d3ea47 | ||
|
|
d0c7562c41 | ||
|
|
0064097c03 | ||
|
|
8bfb965589 | ||
|
|
82c0134811 | ||
|
|
4512a0a5d7 | ||
|
|
52d2684479 | ||
|
|
7e3bf7eeb8 | ||
|
|
0753f10661 | ||
|
|
0448ce686a | ||
|
|
bedd6180f1 | ||
|
|
c6640aa7d3 | ||
|
|
7a650f940c | ||
|
|
86e1d59a6a | ||
|
|
54fa676e75 | ||
|
|
d1242a28cf | ||
|
|
ccd37d4fa3 | ||
|
|
811a9b4f89 | ||
|
|
d960a37e12 | ||
|
|
f6df075d51 | ||
|
|
c5dced237a | ||
|
|
c9c441b8bb | ||
|
|
5e2d376627 | ||
|
|
16e49eee6d | ||
|
|
70411048e5 | ||
|
|
331bcbdaf7 | ||
|
|
af03e39383 | ||
|
|
b2040d9adb | ||
|
|
cadbffe416 | ||
|
|
cd0f42804a | ||
|
|
ba4a119a4f | ||
|
|
9ff6e5caad | ||
|
|
a8bcfb998b | ||
|
|
1c39c68203 | ||
|
|
0a9b8b1318 | ||
|
|
7e075eb959 | ||
|
|
e52468e0c3 | ||
|
|
1a4798792e | ||
|
|
c4b694fdb1 | ||
|
|
75f260a941 | ||
|
|
e0409a9496 | ||
|
|
70d3cdcc08 | ||
|
|
03974481b0 | ||
|
|
58d410b1a2 | ||
|
|
38bd51e63a | ||
|
|
927362354d | ||
|
|
5bb6257acb | ||
|
|
060c0b7215 | ||
|
|
5cb527d53c | ||
|
|
cfc9ddc380 | ||
|
|
cffda88ae8 | ||
|
|
b186846a9e | ||
|
|
da2446283a | ||
|
|
6645b3f5e4 | ||
|
|
c8bd477c84 | ||
|
|
c747dc7184 | ||
|
|
9307acbe4a | ||
|
|
9106250a53 | ||
|
|
449b65cf1b | ||
|
|
0bc7b195e5 | ||
|
|
fba5676b78 | ||
|
|
14fd0296d4 | ||
|
|
47cbed5355 | ||
|
|
2ccdc46561 | ||
|
|
37c4203537 | ||
|
|
d85d8811f0 | ||
|
|
76d225dcfc | ||
|
|
6ef72ab420 | ||
|
|
1418766a1a | ||
|
|
752a064bb3 | ||
|
|
a4d771956a | ||
|
|
007a2bc835 | ||
|
|
6b576da5ef | ||
|
|
6bb13a564f | ||
|
|
bf482f6025 | ||
|
|
d49a8a3e64 | ||
|
|
95920af7b7 | ||
|
|
3d3271abe1 | ||
|
|
b713136a00 | ||
|
|
03ddc84384 | ||
|
|
580e1d5fc5 | ||
|
|
f42df2d846 | ||
|
|
ecc23a5a76 | ||
|
|
d63c6cd04e | ||
|
|
034819cd2d | ||
|
|
0f677fcaac | ||
|
|
efc9236fbc | ||
|
|
b9a99de158 | ||
|
|
939470df52 | ||
|
|
0239329f06 | ||
|
|
d5dffb70be | ||
|
|
4ffd45c126 | ||
|
|
ba6a8a43f7 | ||
|
|
5eddaeade6 | ||
|
|
fc76b4a258 | ||
|
|
b0cce363f1 | ||
|
|
10a4ec0b08 | ||
|
|
0688b74099 | ||
|
|
1130b7eade | ||
|
|
8f383ac531 | ||
|
|
7c9726da64 | ||
|
|
548fce69f8 | ||
|
|
b97acabb01 | ||
|
|
6c9a758648 | ||
|
|
e592c7e7b7 | ||
|
|
cebf4089cc | ||
|
|
099fda0d2b | ||
|
|
8b06f2c31d | ||
|
|
484e9dcdc3 | ||
|
|
9438064afc | ||
|
|
6ab4ac7f7f | ||
|
|
9eddbe88be | ||
|
|
e53e7cf961 | ||
|
|
90a08ad845 | ||
|
|
7f553c1276 | ||
|
|
b7850e9cbf | ||
|
|
50f3ba3189 | ||
|
|
014a15ba62 | ||
|
|
5b133233f7 | ||
|
|
c77a311a89 | ||
|
|
57cd11fffe | ||
|
|
fe9a3d9a10 | ||
|
|
625f56b494 | ||
|
|
c6ea7afb76 | ||
|
|
469d3ee177 | ||
|
|
8a10e545d4 | ||
|
|
2909863573 | ||
|
|
3e89e1b871 | ||
|
|
e2ecd96daa | ||
|
|
7a4c5e919f | ||
|
|
51b1ae925c | ||
|
|
9dace57814 | ||
|
|
c77551b366 | ||
|
|
33a20bd2b8 | ||
|
|
5380b247af | ||
|
|
c72dc4aa73 | ||
|
|
c84bbd93a3 | ||
|
|
57f0ce6d79 | ||
|
|
edacbb2f13 | ||
|
|
6986840c0d | ||
|
|
cdd618e683 | ||
|
|
71a149d776 | ||
|
|
91acd9bb2d | ||
|
|
c065a78402 | ||
|
|
21742bd2ec | ||
|
|
85074dba40 | ||
|
|
8d35ee6978 | ||
|
|
9e6035f98a | ||
|
|
cac0eb7d81 | ||
|
|
9525bc8047 | ||
|
|
82f298febd | ||
|
|
9e92381be4 | ||
|
|
dff6d0c514 | ||
|
|
da4a8a90c7 | ||
|
|
7b9b6b4005 | ||
|
|
d1b865d192 | ||
|
|
94cd864dba | ||
|
|
ffa9e0aa3c | ||
|
|
8a1d32d319 | ||
|
|
416022f3cc | ||
|
|
8fb0f1ca94 | ||
|
|
39aad6bb52 | ||
|
|
f93b2afcc8 | ||
|
|
1d235daf30 | ||
|
|
ebb8715e2c | ||
|
|
5dc7e54596 | ||
|
|
59d9791446 | ||
|
|
a01b9bc9b9 | ||
|
|
4a60f89f4a | ||
|
|
ba96b3092d | ||
|
|
f65e3cf39e | ||
|
|
4fe1b96689 | ||
|
|
cfd54ff80e | ||
|
|
4bc5ee90ef | ||
|
|
4baf140d25 | ||
|
|
6ba0726a42 | ||
|
|
4923d3761e | ||
|
|
437db813d5 | ||
|
|
4b2156d378 | ||
|
|
91309a3d54 | ||
|
|
a67bab58ca | ||
|
|
e71278a13f | ||
|
|
c205299c02 | ||
|
|
0359a57fdc | ||
|
|
be0e32b43b | ||
|
|
af5716d685 | ||
|
|
f6fa2b84bc | ||
|
|
ef4bd94717 | ||
|
|
018198dc17 | ||
|
|
02ae8d3fdb | ||
|
|
9f3e0a7026 | ||
|
|
ad297c1cc9 | ||
|
|
03c8e350dd | ||
|
|
ae733fd8a8 | ||
|
|
b9a3606f37 | ||
|
|
a5ba2f4e41 | ||
|
|
612011249d | ||
|
|
b92cf6de69 | ||
|
|
7f21998ad5 | ||
|
|
ab230fd4e0 | ||
|
|
21a9fa6879 | ||
|
|
4bbcb6a8a1 | ||
|
|
4c91309c56 | ||
|
|
e215d10296 | ||
|
|
e2ae5f9525 | ||
|
|
a7edb159fd | ||
|
|
6c441bb402 | ||
|
|
e23c374cd8 | ||
|
|
03ff5d32f2 | ||
|
|
41b24adfcb | ||
|
|
ffeb6b2447 | ||
|
|
f801b512c3 | ||
|
|
912eb37ac3 | ||
|
|
d62674a803 | ||
|
|
d21070ad1a | ||
|
|
8829619473 | ||
|
|
dc508c30f9 | ||
|
|
1cd285a4d8 | ||
|
|
d5aa15c1c5 | ||
|
|
07dff48a3b | ||
|
|
01d89add2f | ||
|
|
708fbb02de | ||
|
|
209890daeb | ||
|
|
c70046bccf | ||
|
|
e80e320b8b | ||
|
|
334105322c | ||
|
|
feec939a29 | ||
|
|
a74d4ca14d | ||
|
|
7b29651d1e | ||
|
|
732c607c22 | ||
|
|
e4c88a9309 | ||
|
|
6fb09e05a4 | ||
|
|
ca784be4e2 | ||
|
|
ddf086271c | ||
|
|
0dc10062ce | ||
|
|
b188c41420 | ||
|
|
629e33432f | ||
|
|
7b29c5d43d | ||
|
|
5c55760fd5 | ||
|
|
05a21bc8ee | ||
|
|
f37c3d3c86 | ||
|
|
74957542bb | ||
|
|
7d48587ed8 | ||
|
|
019a98f80c | ||
|
|
88a814a616 | ||
|
|
01ec0c0970 | ||
|
|
6ee786c31a | ||
|
|
8a70885f89 | ||
|
|
6867ffb143 | ||
|
|
5116ee8f2d | ||
|
|
530b28bf6f | ||
|
|
2ea24cf043 | ||
|
|
f05f60c4ad | ||
|
|
81bca1ff7c | ||
|
|
4bbebe7c32 | ||
|
|
ec14ee2b77 | ||
|
|
d876542d39 | ||
|
|
3287e3bd5d | ||
|
|
2b96b2f52c | ||
|
|
e363e5b1fd | ||
|
|
da2582237f | ||
|
|
4c93e14b0e | ||
|
|
179ec4688f | ||
|
|
47bb08bbfd | ||
|
|
ae503626ae | ||
|
|
472e73118d | ||
|
|
864b40cb3d | ||
|
|
0b2959d8c7 | ||
|
|
c622998fb1 | ||
|
|
0d3d34a5c9 | ||
|
|
ab522a4a52 | ||
|
|
ed21d776dd | ||
|
|
43303eadf6 | ||
|
|
52388efe59 | ||
|
|
f5d636d12e | ||
|
|
04c367fd06 | ||
|
|
e04a7fb33d | ||
|
|
24f800d185 | ||
|
|
6e87c1d7b7 | ||
|
|
96949627aa | ||
|
|
a2100843b9 | ||
|
|
e968f84999 | ||
|
|
884f66a115 | ||
|
|
b1d434f0ea | ||
|
|
631cfd8c45 | ||
|
|
a4d9f72cf0 | ||
|
|
e4f04128be | ||
|
|
4da94a7285 | ||
|
|
ff1ee12770 | ||
|
|
17b3e07398 | ||
|
|
aee70d1ec7 | ||
|
|
b3144ac26b | ||
|
|
564958f927 | ||
|
|
0d73a38900 | ||
|
|
41f50534aa | ||
|
|
472e9e984c | ||
|
|
2985616532 | ||
|
|
6085a11b1f | ||
|
|
51d6a40132 | ||
|
|
b3ebfa0e6e | ||
|
|
8aef4a49a0 | ||
|
|
1a0909ac92 | ||
|
|
c2fc0cdd1c | ||
|
|
6ed9c3c64c | ||
|
|
0fde62050d | ||
|
|
680f233690 | ||
|
|
ab37d94ee9 | ||
|
|
cecf8c5d6f | ||
|
|
4879174164 | ||
|
|
26f4cae47c | ||
|
|
8a3fd3b136 | ||
|
|
62d54cf3f3 | ||
|
|
29f781f803 | ||
|
|
56d194d377 | ||
|
|
1908394af4 | ||
|
|
945898f8fd | ||
|
|
8957d61f4e | ||
|
|
c5504b5437 | ||
|
|
3d394c9262 | ||
|
|
9477791bfe | ||
|
|
5bec560673 | ||
|
|
8f7abc5a2d | ||
|
|
0978f8c0fa | ||
|
|
3dcf93e26e | ||
|
|
afff8b450f | ||
|
|
a7d0033bae | ||
|
|
0c5cf94b10 | ||
|
|
6b50e7f959 | ||
|
|
630b5e7c3c | ||
|
|
c50958495d | ||
|
|
44eba5515c | ||
|
|
ef2402eff5 | ||
|
|
30ea13b36b | ||
|
|
46608ce898 | ||
|
|
aee59a33be | ||
|
|
eed993fd16 | ||
|
|
3230387fff | ||
|
|
7c95581826 | ||
|
|
7d48cffc0d | ||
|
|
43f196b804 | ||
|
|
5344f3926a | ||
|
|
38c3f289b5 | ||
|
|
755b52febc | ||
|
|
01ccb7ce4b | ||
|
|
96bac1de13 | ||
|
|
ea2272d4b0 | ||
|
|
2c7d1fe39f | ||
|
|
54fef8e093 | ||
|
|
0026fbd289 | ||
|
|
b62f160dd5 | ||
|
|
c15d422f75 | ||
|
|
5207fcd86b | ||
|
|
38ff1f75dd | ||
|
|
4897a8351b | ||
|
|
ee31f24cfb | ||
|
|
eb4c150024 | ||
|
|
a8adb16c0d | ||
|
|
becaf02ab6 | ||
|
|
efd47cd9a1 | ||
|
|
0ac15dffd3 | ||
|
|
05f5522210 | ||
|
|
9117b593fc | ||
|
|
85eef19f8f | ||
|
|
695212ddf8 | ||
|
|
0ce3bd3e6d | ||
|
|
30e4060817 | ||
|
|
ca91500ed5 | ||
|
|
296fad2d9d | ||
|
|
f992d201ad | ||
|
|
931d1857ce | ||
|
|
90eed3c790 | ||
|
|
6d5ac37f99 | ||
|
|
9e169c9a3f | ||
|
|
3e36cad5ee | ||
|
|
9ca91ca584 | ||
|
|
0ae9e355f8 | ||
|
|
c194f559d8 | ||
|
|
d23bc6e089 | ||
|
|
c3556d81c9 | ||
|
|
21b0f01852 | ||
|
|
4335c9b9eb | ||
|
|
4144e0c7ff | ||
|
|
2f097e54fe | ||
|
|
4e93b9a8f8 | ||
|
|
e22adbb3f9 | ||
|
|
88cc5e1413 | ||
|
|
71f76819c0 | ||
|
|
5997caf45f | ||
|
|
681720e96a | ||
|
|
96e6bf5848 | ||
|
|
bd00ddea17 | ||
|
|
81f3fdd854 | ||
|
|
a833992ed6 | ||
|
|
ca1efdcecd | ||
|
|
42f8e012b7 | ||
|
|
f87720dff9 | ||
|
|
76187c550a | ||
|
|
f98f5eba5f | ||
|
|
e22ba69819 | ||
|
|
823303980e | ||
|
|
283eaa1ca6 | ||
|
|
cf9626efc3 | ||
|
|
300ef5257b | ||
|
|
8f17055ec4 | ||
|
|
7cd1656d1d | ||
|
|
3ca27995e1 | ||
|
|
b75095cefa | ||
|
|
1195abc2f4 | ||
|
|
350893fb27 | ||
|
|
68380b2ec0 | ||
|
|
91f5b34ae5 | ||
|
|
cbaebc777d | ||
|
|
4ccfa51faf | ||
|
|
93fc2f1c79 | ||
|
|
4ffd514f76 | ||
|
|
812db650d4 | ||
|
|
f5df265300 | ||
|
|
2ced18870d | ||
|
|
2d7d5152b4 | ||
|
|
63d6af8c41 | ||
|
|
7f22f4ac86 | ||
|
|
9f754dc563 | ||
|
|
428704b538 | ||
|
|
20d7d03a0d | ||
|
|
e786b0b0b6 | ||
|
|
d0d4c7b994 | ||
|
|
a196255841 | ||
|
|
7f2384d665 | ||
|
|
f708eadcfd | ||
|
|
7b920f5c42 | ||
|
|
efe2edd83c | ||
|
|
bcb64b3297 | ||
|
|
ddb7276bf0 | ||
|
|
a28d2feb4f | ||
|
|
94f739ab52 | ||
|
|
5a00224c93 | ||
|
|
52e03944c0 | ||
|
|
b683eca5c8 | ||
|
|
87adab39d7 | ||
|
|
fa53d1351b | ||
|
|
50c4f18cf6 | ||
|
|
38366ef8ed | ||
|
|
0220782aa8 | ||
|
|
ca4c261f6e | ||
|
|
c839134130 | ||
|
|
be8b95fdf9 | ||
|
|
45af27734e | ||
|
|
cb2a4f4a72 | ||
|
|
ce590b5bc9 | ||
|
|
6b88bc1b8b | ||
|
|
26f5925c05 | ||
|
|
d954a500f6 | ||
|
|
abab44a74c | ||
|
|
4aac63ea00 | ||
|
|
156f54302d | ||
|
|
838f730fb2 | ||
|
|
215d1155f8 | ||
|
|
22e0ab3d2b | ||
|
|
acb4a187fb | ||
|
|
db0e1691cc | ||
|
|
eea02126a4 | ||
|
|
c9ed92d3f5 | ||
|
|
b82d5fcfff | ||
|
|
d251b373be | ||
|
|
05c858bf96 | ||
|
|
854ad13f16 | ||
|
|
722160cd48 | ||
|
|
133b7394c2 | ||
|
|
2813d61f65 | ||
|
|
f7bcbb5828 | ||
|
|
813400ec54 | ||
|
|
cdf7e8e635 | ||
|
|
3f1131f80f | ||
|
|
adef3f67fc | ||
|
|
fb65726a55 | ||
|
|
1d8f25ba9b | ||
|
|
8b41e72cf7 | ||
|
|
88b6e36e04 | ||
|
|
cd5eb61e90 | ||
|
|
55e8f83eb5 | ||
|
|
4e0c2e4650 | ||
|
|
535d612a93 | ||
|
|
b8b94c46fc | ||
|
|
fd1557f634 | ||
|
|
2c5e787b77 | ||
|
|
094b635f87 | ||
|
|
e1b679912a | ||
|
|
9c795e6e4e | ||
|
|
48d93e9404 | ||
|
|
3545bf158a | ||
|
|
3a2f2ff0c3 | ||
|
|
216e393f43 | ||
|
|
45f0605678 | ||
|
|
b3d2c603dd | ||
|
|
346391ae2c | ||
|
|
c26755624d | ||
|
|
7ce057d2ba | ||
|
|
cdcfef6c1a | ||
|
|
3a05e0ecf0 | ||
|
|
0a5623a949 | ||
|
|
7ee210f83f | ||
|
|
06259fed19 | ||
|
|
eae071c97d | ||
|
|
fcfee82cc8 | ||
|
|
8c0ab03706 | ||
|
|
4ef57b24bb | ||
|
|
f107d7c0d8 | ||
|
|
434e765128 | ||
|
|
24621ed519 | ||
|
|
3b967f9eb1 | ||
|
|
5178c0f755 | ||
|
|
35d1e6ff14 | ||
|
|
31c68ba338 | ||
|
|
37392a03f2 | ||
|
|
58eebf4ece | ||
|
|
3c7bd525bb | ||
|
|
404cea7417 | ||
|
|
0b22a2ba33 | ||
|
|
4545730776 | ||
|
|
344bfab229 | ||
|
|
e2d623fc65 | ||
|
|
28947876a2 | ||
|
|
55b9307e19 | ||
|
|
2854453f26 | ||
|
|
a66da4a45e | ||
|
|
d6806ab494 | ||
|
|
7e7cbd55b1 | ||
|
|
fe2d128b44 | ||
|
|
d3ca3e87bd | ||
|
|
588e7e7ab4 | ||
|
|
415d7f2214 | ||
|
|
21c7c9c009 | ||
|
|
3daba977e0 | ||
|
|
6e9278ff24 | ||
|
|
44f629f03a | ||
|
|
39a7920083 | ||
|
|
bdf69ce1ec | ||
|
|
468418193b | ||
|
|
c5f089b4a6 | ||
|
|
d1a06e784c | ||
|
|
8952ad0c29 | ||
|
|
97a6023bb6 | ||
|
|
9fb7a1f228 | ||
|
|
d021bb98ef | ||
|
|
bfd7301945 | ||
|
|
e2c020d4c7 | ||
|
|
0609a4c80a | ||
|
|
c5d5220e28 | ||
|
|
640308c076 | ||
|
|
b1ba3fa0c6 | ||
|
|
c5fac27bc8 | ||
|
|
57ffb2ba7a | ||
|
|
8735071fac | ||
|
|
2646e4df86 | ||
|
|
3f82a553bd | ||
|
|
f83d156fdb | ||
|
|
24cbff9a9f | ||
|
|
e96611cccd | ||
|
|
3f9133def9 | ||
|
|
0832f97492 | ||
|
|
9cb6856bfb | ||
|
|
ae954af768 | ||
|
|
7b589cab9d | ||
|
|
e5805f3f7d | ||
|
|
8a4c1f1ef7 | ||
|
|
7c0f8f9b9d | ||
|
|
0429ea146e | ||
|
|
ef47084e05 | ||
|
|
ef1e64ac03 | ||
|
|
3c17132a55 | ||
|
|
6c356604ec | ||
|
|
77b0cebb35 | ||
|
|
07dcc8998b | ||
|
|
3dbfe9d66d | ||
|
|
8c71aebe45 | ||
|
|
7c7c62dab2 | ||
|
|
f74e354d68 | ||
|
|
9d95870f78 | ||
|
|
8c95180578 | ||
|
|
296b13947f | ||
|
|
7778533bdf | ||
|
|
c3dc368163 | ||
|
|
39aa859d19 | ||
|
|
61f3031364 | ||
|
|
4d5bc22242 | ||
|
|
18995e83a8 | ||
|
|
385c1850cb | ||
|
|
390b5fe553 | ||
|
|
d0dbd1f6fd | ||
|
|
590882cd1d | ||
|
|
8ad3e6322e | ||
|
|
8aa8bbebd5 |
173
.github/workflows/build.yml
vendored
Normal file
173
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
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@v4
|
||||||
|
- 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@v4
|
||||||
|
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@v4
|
||||||
|
- 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@v4
|
||||||
|
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@v4
|
||||||
|
- 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@v4
|
||||||
|
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@v4
|
||||||
|
- 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@v2
|
||||||
|
- run: msbuild -m -p:Platform=${{ matrix.platform }} -p:Configuration=${{ env.CONFIGURATION }} contrib/msvc/libdivecomputer.vcxproj
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
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@v4
|
||||||
|
- 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@v4
|
||||||
|
with:
|
||||||
|
name: ${{ github.job }}
|
||||||
|
path: contrib/android/libs
|
||||||
47
.github/workflows/release.yml
vendored
Normal file
47
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: Release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- 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 }}
|
||||||
37
.gitignore
vendored
37
.gitignore
vendored
@ -32,32 +32,12 @@ Makefile.in
|
|||||||
/stamp-h1
|
/stamp-h1
|
||||||
/tags
|
/tags
|
||||||
|
|
||||||
/examples/aladin
|
/doc/doxygen
|
||||||
/examples/atom2
|
/doc/doxygen.cfg
|
||||||
/examples/d9
|
/doc/html/
|
||||||
/examples/darwin
|
/doc/latex/
|
||||||
/examples/edy
|
|
||||||
/examples/eon
|
/examples/dctool
|
||||||
/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
|
/include/libdivecomputer/version.h
|
||||||
|
|
||||||
@ -67,11 +47,10 @@ Makefile.in
|
|||||||
/m4/ltsugar.m4
|
/m4/ltsugar.m4
|
||||||
/m4/ltversion.m4
|
/m4/ltversion.m4
|
||||||
|
|
||||||
/msvc/Debug/
|
/msvc/x64/
|
||||||
/msvc/Release/
|
/msvc/x86/
|
||||||
/msvc/*.ncb
|
/msvc/*.ncb
|
||||||
/msvc/*.suo
|
/msvc/*.suo
|
||||||
/msvc/*.vcproj.*.user
|
|
||||||
|
|
||||||
/src/libdivecomputer.exp
|
/src/libdivecomputer.exp
|
||||||
/src/libdivecomputer.la
|
/src/libdivecomputer.la
|
||||||
|
|||||||
55
.travis.yml
Normal file
55
.travis.yml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
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
|
||||||
10
Makefile.am
10
Makefile.am
@ -4,6 +4,10 @@ if ENABLE_EXAMPLES
|
|||||||
SUBDIRS += examples
|
SUBDIRS += examples
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if ENABLE_DOC
|
||||||
|
SUBDIRS += doc
|
||||||
|
endif
|
||||||
|
|
||||||
AM_MAKEFLAGS = -s
|
AM_MAKEFLAGS = -s
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
@ -12,4 +16,8 @@ pkgconfig_DATA = libdivecomputer.pc
|
|||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
libdivecomputer.pc.in \
|
libdivecomputer.pc.in \
|
||||||
msvc/libdivecomputer.vcproj
|
contrib/README \
|
||||||
|
contrib/android/Android.mk \
|
||||||
|
contrib/msvc/libdivecomputer.vcxproj \
|
||||||
|
contrib/msvc/libdivecomputer.vcxproj.filters \
|
||||||
|
contrib/udev/libdivecomputer.rules
|
||||||
|
|||||||
111
NEWS
111
NEWS
@ -1,3 +1,114 @@
|
|||||||
|
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)
|
Version 0.5.0 (2016-09-30)
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
|||||||
160
configure.ac
160
configure.ac
@ -1,8 +1,8 @@
|
|||||||
# Versioning.
|
# Versioning.
|
||||||
m4_define([dc_version_major],[0])
|
m4_define([dc_version_major],[0])
|
||||||
m4_define([dc_version_minor],[5])
|
m4_define([dc_version_minor],[9])
|
||||||
m4_define([dc_version_micro],[0])
|
m4_define([dc_version_micro],[0])
|
||||||
m4_define([dc_version_suffix],[])
|
m4_define([dc_version_suffix],[devel])
|
||||||
m4_define([dc_version],dc_version_major.dc_version_minor.dc_version_micro[]m4_ifset([dc_version_suffix],-[dc_version_suffix]))
|
m4_define([dc_version],dc_version_major.dc_version_minor.dc_version_micro[]m4_ifset([dc_version_suffix],-[dc_version_suffix]))
|
||||||
|
|
||||||
# Libtool versioning.
|
# Libtool versioning.
|
||||||
@ -53,25 +53,40 @@ AC_ARG_ENABLE([examples],
|
|||||||
[], [enable_examples=yes])
|
[], [enable_examples=yes])
|
||||||
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
|
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
|
||||||
|
|
||||||
|
# Documentation.
|
||||||
|
AC_ARG_ENABLE([doc],
|
||||||
|
[AS_HELP_STRING([--enable-doc=@<:@yes/no@:>@],
|
||||||
|
[Build documentation @<:@default=yes@:>@])],
|
||||||
|
[], [enable_doc=yes])
|
||||||
|
AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = "xyes"])
|
||||||
|
|
||||||
# Checks for programs.
|
# Checks for programs.
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_CC_C99
|
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.
|
# Enable automake silent build rules.
|
||||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
# Checks for native Windows.
|
# Checks for operating system.
|
||||||
AC_MSG_CHECKING([for native Win32])
|
AC_MSG_CHECKING([for operating system])
|
||||||
case "$host" in
|
case "$host" in
|
||||||
*-*-mingw*)
|
*-*-mingw*)
|
||||||
os_win32=yes
|
platform=windows
|
||||||
|
;;
|
||||||
|
*-*-darwin*)
|
||||||
|
platform=mac
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
os_win32=no
|
platform=default
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
AC_MSG_RESULT([$os_win32])
|
AC_MSG_RESULT([$platform])
|
||||||
AM_CONDITIONAL([OS_WIN32], [test "$os_win32" = "yes"])
|
AM_CONDITIONAL([OS_WIN32], [test "$platform" = "windows"])
|
||||||
|
|
||||||
DEPENDENCIES=""
|
DEPENDENCIES=""
|
||||||
|
|
||||||
@ -92,25 +107,45 @@ AS_IF([test "x$with_libusb" != "xno"], [
|
|||||||
AC_ARG_WITH([hidapi],
|
AC_ARG_WITH([hidapi],
|
||||||
[AS_HELP_STRING([--without-hidapi],
|
[AS_HELP_STRING([--without-hidapi],
|
||||||
[Build without the hidapi library])],
|
[Build without the hidapi library])],
|
||||||
[], [with_hidapi=auto])
|
[], [with_hidapi=hidapi])
|
||||||
AS_IF([test "x$with_hidapi" != "xno"], [
|
AS_IF([test "x$with_hidapi" != "xno"], [
|
||||||
PKG_CHECK_MODULES([HIDAPI], [hidapi], [have_hidapi=yes], [have_hidapi=no])
|
PKG_CHECK_MODULES([HIDAPI], [$with_hidapi], [have_hidapi=yes], [have_hidapi=no])
|
||||||
AS_IF([test "x$have_hidapi" = "xyes"], [
|
AS_IF([test "x$have_hidapi" = "xyes"], [
|
||||||
AC_DEFINE([HAVE_HIDAPI], [1], [hidapi library])
|
AC_DEFINE([HAVE_HIDAPI], [1], [hidapi library])
|
||||||
DEPENDENCIES="$DEPENDENCIES hidapi"
|
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"
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_SUBST([DEPENDENCIES])
|
AC_SUBST([DEPENDENCIES])
|
||||||
|
|
||||||
# Checks for IrDA support.
|
# Checks for Windows bluetooth support.
|
||||||
AC_CHECK_HEADERS([winsock2.h af_irda.h], [irda_win32=yes], [irda_win32=no], [
|
AC_CHECK_HEADERS([winsock2.h ws2bth.h], , , [
|
||||||
#if HAVE_WINSOCK2_H
|
#if HAVE_WINSOCK2_H
|
||||||
# include <winsock2.h>
|
# include <winsock2.h>
|
||||||
# endif
|
# endif
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], [irda_linux=yes], [irda_linux=no], [
|
# Checks for IrDA support.
|
||||||
|
AC_CHECK_HEADERS([winsock2.h af_irda.h], , , [
|
||||||
|
#if HAVE_WINSOCK2_H
|
||||||
|
# include <winsock2.h>
|
||||||
|
# endif
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], , , [
|
||||||
#if HAVE_SYS_SOCKET_H
|
#if HAVE_SYS_SOCKET_H
|
||||||
# include <sys/socket.h>
|
# include <sys/socket.h>
|
||||||
# endif
|
# endif
|
||||||
@ -119,26 +154,52 @@ AC_CHECK_HEADERS([sys/socket.h linux/types.h linux/irda.h], [irda_linux=yes], [i
|
|||||||
# endif
|
# 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.
|
# Checks for header files.
|
||||||
AC_CHECK_HEADERS([linux/serial.h])
|
AC_CHECK_HEADERS([linux/serial.h])
|
||||||
AC_CHECK_HEADERS([IOKit/serial/ioss.h])
|
AC_CHECK_HEADERS([IOKit/serial/ioss.h])
|
||||||
AC_CHECK_HEADERS([getopt.h])
|
AC_CHECK_HEADERS([unistd.h getopt.h])
|
||||||
AC_CHECK_HEADERS([sys/param.h])
|
AC_CHECK_HEADERS([sys/param.h])
|
||||||
|
AC_CHECK_HEADERS([pthread.h])
|
||||||
|
AC_CHECK_HEADERS([mach/mach_time.h])
|
||||||
|
|
||||||
# Checks for global variable declarations.
|
# Checks for global variable declarations.
|
||||||
AC_CHECK_DECLS([optreset])
|
AC_CHECK_DECLS([optreset])
|
||||||
|
|
||||||
|
# Checks for structures.
|
||||||
|
AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
|
||||||
|
#include <time.h>
|
||||||
|
])
|
||||||
|
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_FUNC_STRERROR_R
|
AC_FUNC_STRERROR_R
|
||||||
AC_CHECK_FUNCS([localtime_r gmtime_r])
|
AC_CHECK_FUNCS([localtime_r gmtime_r timegm _mkgmtime])
|
||||||
|
AC_CHECK_FUNCS([clock_gettime mach_absolute_time])
|
||||||
AC_CHECK_FUNCS([getopt_long])
|
AC_CHECK_FUNCS([getopt_long])
|
||||||
|
|
||||||
|
# Checks for supported compiler options.
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option],[ERROR_CFLAGS])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([ \
|
||||||
|
-pedantic \
|
||||||
|
-Wall \
|
||||||
|
-Wextra \
|
||||||
|
-Wshadow \
|
||||||
|
-Wrestrict \
|
||||||
|
-Wformat=2 \
|
||||||
|
-Wwrite-strings \
|
||||||
|
-Wcast-qual \
|
||||||
|
-Wpointer-arith \
|
||||||
|
-Wstrict-prototypes \
|
||||||
|
-Wmissing-prototypes \
|
||||||
|
-Wmissing-declarations \
|
||||||
|
-Wno-unused-parameter \
|
||||||
|
-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.
|
# Versioning.
|
||||||
AC_SUBST([DC_VERSION],[dc_version])
|
AC_SUBST([DC_VERSION],[dc_version])
|
||||||
AC_SUBST([DC_VERSION_MAJOR],[dc_version_major])
|
AC_SUBST([DC_VERSION_MAJOR],[dc_version_major])
|
||||||
@ -151,6 +212,25 @@ m4_ifset([dc_version_suffix],[
|
|||||||
AC_DEFINE(HAVE_VERSION_SUFFIX, [1], [Define if a version suffix is present.])
|
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([
|
AC_CONFIG_FILES([
|
||||||
libdivecomputer.pc
|
libdivecomputer.pc
|
||||||
Makefile
|
Makefile
|
||||||
@ -158,7 +238,41 @@ AC_CONFIG_FILES([
|
|||||||
include/libdivecomputer/Makefile
|
include/libdivecomputer/Makefile
|
||||||
include/libdivecomputer/version.h
|
include/libdivecomputer/version.h
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/libdivecomputer.rc
|
doc/Makefile
|
||||||
|
doc/doxygen.cfg
|
||||||
|
doc/man/Makefile
|
||||||
examples/Makefile
|
examples/Makefile
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
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.
|
||||||
|
])
|
||||||
|
|||||||
56
contrib/README
Normal file
56
contrib/README
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
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.
|
||||||
144
contrib/android/Android.mk
Normal file
144
contrib/android/Android.mk
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
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
|
||||||
|
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)
|
||||||
408
contrib/msvc/libdivecomputer.vcxproj
Normal file
408
contrib/msvc/libdivecomputer.vcxproj
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
<?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>
|
||||||
17
contrib/msvc/libdivecomputer.vcxproj.filters
Normal file
17
contrib/msvc/libdivecomputer.vcxproj.filters
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?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>
|
||||||
35
contrib/udev/libdivecomputer.rules
Normal file
35
contrib/udev/libdivecomputer.rules
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# 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"
|
||||||
14
doc/Makefile.am
Normal file
14
doc/Makefile.am
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
SUBDIRS = man
|
||||||
|
|
||||||
|
doxygen: doxygen.cfg
|
||||||
|
if HAVE_DOXYGEN
|
||||||
|
$(DOXYGEN) $(DOXYFLAGS) $<
|
||||||
|
touch $@
|
||||||
|
endif
|
||||||
|
|
||||||
|
all-local: doxygen
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
-$(RM) -rf html latex
|
||||||
|
|
||||||
|
CLEANFILES = doxygen
|
||||||
2427
doc/doxygen.cfg.in
Normal file
2427
doc/doxygen.cfg.in
Normal file
File diff suppressed because it is too large
Load Diff
72
doc/man/Makefile.am
Normal file
72
doc/man/Makefile.am
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
MANPAGES = \
|
||||||
|
dc_buffer_append.3 \
|
||||||
|
dc_buffer_free.3 \
|
||||||
|
dc_buffer_get_data.3 \
|
||||||
|
dc_buffer_get_size.3 \
|
||||||
|
dc_buffer_new.3 \
|
||||||
|
dc_buffer_prepend.3 \
|
||||||
|
dc_context_free.3 \
|
||||||
|
dc_context_new.3 \
|
||||||
|
dc_context_set_logfunc.3 \
|
||||||
|
dc_context_set_loglevel.3 \
|
||||||
|
dc_datetime_gmtime.3 \
|
||||||
|
dc_datetime_localtime.3 \
|
||||||
|
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 \
|
||||||
|
dc_device_open.3 \
|
||||||
|
dc_device_set_cancel.3 \
|
||||||
|
dc_device_set_events.3 \
|
||||||
|
dc_device_set_fingerprint.3 \
|
||||||
|
dc_iterator_free.3 \
|
||||||
|
dc_iterator_next.3 \
|
||||||
|
dc_parser_destroy.3 \
|
||||||
|
dc_parser_get_datetime.3 \
|
||||||
|
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)
|
||||||
61
doc/man/dc_bluetooth_addr2str.3
Normal file
61
doc/man/dc_bluetooth_addr2str.3
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
52
doc/man/dc_bluetooth_device_free.3
Normal file
52
doc/man/dc_bluetooth_device_free.3
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
69
doc/man/dc_bluetooth_device_get_address.3
Normal file
69
doc/man/dc_bluetooth_device_get_address.3
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
61
doc/man/dc_bluetooth_device_get_name.3
Normal file
61
doc/man/dc_bluetooth_device_get_name.3
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
102
doc/man/dc_bluetooth_iterator_new.3
Normal file
102
doc/man/dc_bluetooth_iterator_new.3
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
87
doc/man/dc_bluetooth_open.3
Normal file
87
doc/man/dc_bluetooth_open.3
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
58
doc/man/dc_bluetooth_str2addr.3
Normal file
58
doc/man/dc_bluetooth_str2addr.3
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
61
doc/man/dc_buffer_append.3
Normal file
61
doc/man/dc_buffer_append.3
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_APPEND 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_append
|
||||||
|
.Nd append to a binary buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft int
|
||||||
|
.Fo dc_buffer_append
|
||||||
|
.Fa "dc_buffer_t *buffer"
|
||||||
|
.Fa "const unsigned char data[]"
|
||||||
|
.Fa "size_t size"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Append
|
||||||
|
.Fa size
|
||||||
|
bytes of
|
||||||
|
.Fa data
|
||||||
|
into the
|
||||||
|
.Fa buffer
|
||||||
|
previously allocated with
|
||||||
|
.Xr dc_buffer_new 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns non-zero on success or zero on memory exhaustion or if
|
||||||
|
.Fa buffer
|
||||||
|
is
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_buffer_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
51
doc/man/dc_buffer_free.3
Normal file
51
doc/man/dc_buffer_free.3
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_FREE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_free
|
||||||
|
.Nd free an resizable binary buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft void
|
||||||
|
.Fo dc_buffer_free
|
||||||
|
.Fa "dc_buffer_t *buffer"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Frees a resizable binary buffer created with
|
||||||
|
.Xr dc_buffer_new 3 .
|
||||||
|
It's safe to pass
|
||||||
|
.Dv NULL
|
||||||
|
to this function.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_buffer_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
64
doc/man/dc_buffer_get_data.3
Normal file
64
doc/man/dc_buffer_get_data.3
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_GET_DATA 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_get_data
|
||||||
|
.Nd get the data of a buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft "unsigned char *"
|
||||||
|
.Fo dc_buffer_get_data
|
||||||
|
.Fa "dc_buffer_t *buffer"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Get the data used by
|
||||||
|
.Fa buffer ,
|
||||||
|
previously allocated with
|
||||||
|
.Xr dc_buffer_new 3 .
|
||||||
|
For the buffer size, use
|
||||||
|
.Xr dc_buffer_get_size 3 .
|
||||||
|
.Pp
|
||||||
|
The returned pointer is not valid after subsequent calls to change the
|
||||||
|
buffer.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns the data or
|
||||||
|
.Dv NULL
|
||||||
|
if
|
||||||
|
.Fa buffer
|
||||||
|
is
|
||||||
|
.Dv NULL
|
||||||
|
or no data has been allocated to the buffer.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_buffer_get_size 3 ,
|
||||||
|
.Xr dc_buffer_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
59
doc/man/dc_buffer_get_size.3
Normal file
59
doc/man/dc_buffer_get_size.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_GET_SIZE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_get_size
|
||||||
|
.Nd get the size used by a buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft size_t
|
||||||
|
.Fo dc_buffer_get_size
|
||||||
|
.Fa "dc_buffer_t *buffer"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Get the number of bytes currently used by
|
||||||
|
.Fa buffer ,
|
||||||
|
previously allocated with
|
||||||
|
.Xr dc_buffer_new 3 .
|
||||||
|
This shouldn't be confused with the capacity, which may be larger.
|
||||||
|
.Pp
|
||||||
|
The returned value is not valid after subsequent calls to change the
|
||||||
|
buffer.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns the number of bytes used, which may be zero, or zero if
|
||||||
|
.Fa buffer
|
||||||
|
is
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
|
.Xr dc_buffer_new 3
|
||||||
57
doc/man/dc_buffer_new.3
Normal file
57
doc/man/dc_buffer_new.3
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_NEW 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_new
|
||||||
|
.Nd create an resizable binary buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft "dc_buffer_t *"
|
||||||
|
.Fo dc_buffer_new
|
||||||
|
.Fa "size_t capacity"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Create a resizable binary buffer of initial size
|
||||||
|
.Fa capacity ,
|
||||||
|
which may be zero.
|
||||||
|
The created buffer must be freed with
|
||||||
|
.Xr dc_buffer_free 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns a pointer to a
|
||||||
|
.Vt dc_buffer_t
|
||||||
|
or
|
||||||
|
.Dv NULL
|
||||||
|
on memory exhaustion.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_buffer_free 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
61
doc/man/dc_buffer_prepend.3
Normal file
61
doc/man/dc_buffer_prepend.3
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_BUFFER_PREPEND 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_buffer_prepend
|
||||||
|
.Nd prepend to a binary buffer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/buffer.h
|
||||||
|
.Ft int
|
||||||
|
.Fo dc_buffer_prepend
|
||||||
|
.Fa "dc_buffer_t *buffer"
|
||||||
|
.Fa "const unsigned char data[]"
|
||||||
|
.Fa "size_t size"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Prepend
|
||||||
|
.Fa size
|
||||||
|
bytes of
|
||||||
|
.Fa data
|
||||||
|
to the beginning of
|
||||||
|
.Fa buffer
|
||||||
|
previously allocated with
|
||||||
|
.Xr dc_buffer_new 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns non-zero on success or zero on memory exhaustion or if
|
||||||
|
.Fa buffer
|
||||||
|
is
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_buffer_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
54
doc/man/dc_context_free.3
Normal file
54
doc/man/dc_context_free.3
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_CONTEXT_FREE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_context_free
|
||||||
|
.Nd free a device-handling context
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/context.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_context_free
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Free a context created by
|
||||||
|
.Xr dc_context_new 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on success or if the pointer is
|
||||||
|
.Dv NULL .
|
||||||
|
Otherwise, it returns an error code.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_context_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
73
doc/man/dc_context_new.3
Normal file
73
doc/man/dc_context_new.3
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_CONTEXT_NEW 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_context_new
|
||||||
|
.Nd create a new device-handling context
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/context.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_context_new
|
||||||
|
.Fa "dc_context_t **context"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Create a context in which dive computers may be queried.
|
||||||
|
The
|
||||||
|
.Dq context
|
||||||
|
supplies logging messages and so on, and may be re-used for multiple
|
||||||
|
dive computer query sessions.
|
||||||
|
It is usually passed to
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
to query a specific dive computer device.
|
||||||
|
.Pp
|
||||||
|
On success, the context must be freed with
|
||||||
|
.Xr dc_context_free 3 .
|
||||||
|
You may configure the context with
|
||||||
|
.Xr dc_context_set_loglevel 3
|
||||||
|
and
|
||||||
|
.Xr dc_context_set_logfunc 3 .
|
||||||
|
This is highly recommended as the default logging behaviour of
|
||||||
|
.Nm
|
||||||
|
depends upon compile-time values.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on success, in which case
|
||||||
|
.Fa context
|
||||||
|
is filled in, or an error code on failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_context_free 3 ,
|
||||||
|
.Xr dc_context_set_logfunc 3 ,
|
||||||
|
.Xr dc_context_set_loglevel 3 ,
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
98
doc/man/dc_context_set_logfunc.3
Normal file
98
doc/man/dc_context_set_logfunc.3
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_CONTEXT_SET_LOGFUNC 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_context_set_logfunc
|
||||||
|
.Nd set the logging function for a dive computer context
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/context.h
|
||||||
|
.Ft typedef void
|
||||||
|
.Fo (*dc_logfunc_t)
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fa "dc_loglevel_t loglevel"
|
||||||
|
.Fa "const char *file"
|
||||||
|
.Fa "unsigned int line"
|
||||||
|
.Fa "const char *function"
|
||||||
|
.Fa "const char *message"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_context_set_logfunc
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fa "dc_logfunc_t logfunc"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Set the logging function
|
||||||
|
.Fa logfunc
|
||||||
|
associated with a dive computer context.
|
||||||
|
The logging function is invoked with argument
|
||||||
|
.Fa userdata
|
||||||
|
when the log level
|
||||||
|
.Pq see Xr dc_context_set_loglevel 3
|
||||||
|
has been exceeded.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Fa logfunc
|
||||||
|
accepts the following values:
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Fa context
|
||||||
|
The context in which it was invoked.
|
||||||
|
.It Fa loglevel
|
||||||
|
The level of the log message.
|
||||||
|
.It Fa file
|
||||||
|
The source file where the message was raised.
|
||||||
|
.It Fa line
|
||||||
|
The source line (from 1) where the message was raised.
|
||||||
|
.It Fa function
|
||||||
|
The function that raised the log message.
|
||||||
|
.It Fa message
|
||||||
|
The log message itself.
|
||||||
|
.It Fa userdata
|
||||||
|
The pointer passed to
|
||||||
|
.Nm dc_context_set_logfunc .
|
||||||
|
.El
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on setting the log level,
|
||||||
|
.Dv DC_STATUS_INVALIDARGS
|
||||||
|
if
|
||||||
|
.Fa context
|
||||||
|
is
|
||||||
|
.Dv NULL ,
|
||||||
|
or another error code on failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_context_new 3 ,
|
||||||
|
.Xr dc_context_set_loglevel 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
90
doc/man/dc_context_set_loglevel.3
Normal file
90
doc/man/dc_context_set_loglevel.3
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_CONTEXT_SET_LOGLEVEL 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_context_set_loglevel
|
||||||
|
.Nd set the logging level for a dive computer context
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/context.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_context_set_loglevel
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fa "dc_loglevel_t loglevel"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Set the
|
||||||
|
.Em minimum
|
||||||
|
log level required to raise a logging event with the
|
||||||
|
.Xr dc_context_set_logfunc 3
|
||||||
|
callback.
|
||||||
|
Operates on a dive computer context created with
|
||||||
|
.Xr dc_context_new 3 .
|
||||||
|
The log levels are ordered as follows:
|
||||||
|
.Bl -enum
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_NONE
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_ERROR
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_WARNING
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_INFO
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_DEBUG
|
||||||
|
.It
|
||||||
|
.Dv DC_LOGLEVEL_ALL
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
By setting, for exammple,
|
||||||
|
.Dv DC_LOGLEVEL_INFO ,
|
||||||
|
all events of
|
||||||
|
.Dv DC_LOGLEVEL_ERROR ,
|
||||||
|
.Dv DC_LOGLEVEL_WARNING ,
|
||||||
|
and
|
||||||
|
.Dv DC_LOGLEVEL_INFO
|
||||||
|
will be reported via the callback in
|
||||||
|
.Xr dc_context_set_logfunc 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on setting the log level,
|
||||||
|
.Dv DC_STATUS_INVALIDARGS
|
||||||
|
if
|
||||||
|
.Fa context
|
||||||
|
is
|
||||||
|
.Dv NULL ,
|
||||||
|
or another error code on failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_context_new 3 ,
|
||||||
|
.Xr dc_context_set_logfunc 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
94
doc/man/dc_datetime_gmtime.3
Normal file
94
doc/man/dc_datetime_gmtime.3
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 11, 2017
|
||||||
|
.Dt DC_DATETIME_GMTIME 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_datetime_gmtime
|
||||||
|
.Nd convert an timestamp to GMT date and time
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/datetime.h
|
||||||
|
.Ft dc_datetime_t *
|
||||||
|
.Fo dc_datetime_gmtime
|
||||||
|
.Fa "dc_datetime_t *result"
|
||||||
|
.Fa "dc_ticks_t ticks"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Convert an integral timestamp
|
||||||
|
.Fa ticks
|
||||||
|
created with
|
||||||
|
.Xr dc_datetime_now 3
|
||||||
|
or
|
||||||
|
.Xr dc_datetime_mktime 3
|
||||||
|
into a broken-down GMT representation in
|
||||||
|
.Fa result .
|
||||||
|
The filled-in value consists of the
|
||||||
|
.Va year ,
|
||||||
|
.Va month ,
|
||||||
|
.Va day ,
|
||||||
|
.Va hour ,
|
||||||
|
.Va minute ,
|
||||||
|
and
|
||||||
|
.Va second
|
||||||
|
fields.
|
||||||
|
.Pp
|
||||||
|
.Em Note :
|
||||||
|
unlike in
|
||||||
|
.Vt "struct tm" ,
|
||||||
|
the value for
|
||||||
|
.Va year
|
||||||
|
is normalised, not less 1900; moreover, the value for
|
||||||
|
.Va month
|
||||||
|
is from one, not zero.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
function may internally invoke libc's
|
||||||
|
.Xr gmtime 3 ,
|
||||||
|
or if available,
|
||||||
|
.Xr gmtime_r 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the
|
||||||
|
.Fa result
|
||||||
|
pointer on success.
|
||||||
|
It returns
|
||||||
|
.Dv NULL
|
||||||
|
if
|
||||||
|
.Fa ticks
|
||||||
|
cannot be sanely converted or if
|
||||||
|
.Fa result
|
||||||
|
is
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_datetime_localtime 3 ,
|
||||||
|
.Xr dc_datetime_mktime 3 ,
|
||||||
|
.Xr dc_datetime_now 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
94
doc/man/dc_datetime_localtime.3
Normal file
94
doc/man/dc_datetime_localtime.3
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 11, 2017
|
||||||
|
.Dt DC_DATETIME_LOCALTIME 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_datetime_localtime
|
||||||
|
.Nd convert an timestamp to local date and time
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/datetime.h
|
||||||
|
.Ft dc_datetime_t *
|
||||||
|
.Fo dc_datetime_localtime
|
||||||
|
.Fa "dc_datetime_t *result"
|
||||||
|
.Fa "dc_ticks_t ticks"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Convert an integral timestamp
|
||||||
|
.Fa ticks
|
||||||
|
created with
|
||||||
|
.Xr dc_datetime_now 3
|
||||||
|
or
|
||||||
|
.Xr dc_datetime_mktime 3
|
||||||
|
into a broken-down local-time representation in
|
||||||
|
.Fa result .
|
||||||
|
The filled-in value consists of the
|
||||||
|
.Va year ,
|
||||||
|
.Va month ,
|
||||||
|
.Va day ,
|
||||||
|
.Va hour ,
|
||||||
|
.Va minute ,
|
||||||
|
and
|
||||||
|
.Va second
|
||||||
|
fields.
|
||||||
|
.Pp
|
||||||
|
.Em Note :
|
||||||
|
unlike in
|
||||||
|
.Vt "struct tm" ,
|
||||||
|
the value for
|
||||||
|
.Va year
|
||||||
|
is normalised, not less 1900; moreover, the value for
|
||||||
|
.Va month
|
||||||
|
is from one, not zero.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
function may internally invoke libc's
|
||||||
|
.Xr localtime 3 ,
|
||||||
|
or if available,
|
||||||
|
.Xr localtime_r 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the
|
||||||
|
.Fa result
|
||||||
|
pointer on success.
|
||||||
|
It returns
|
||||||
|
.Dv NULL
|
||||||
|
if
|
||||||
|
.Fa ticks
|
||||||
|
cannot be sanely converted or if
|
||||||
|
.Fa result
|
||||||
|
is
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_datetime_gmtime 3 ,
|
||||||
|
.Xr dc_datetime_mktime 3 ,
|
||||||
|
.Xr dc_datetime_now 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
59
doc/man/dc_datetime_mktime.3
Normal file
59
doc/man/dc_datetime_mktime.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 11, 2017
|
||||||
|
.Dt DC_DATETIME_MKTIME 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_datetime_mktime
|
||||||
|
.Nd convert an local date and time to a timestamp
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/datetime.h
|
||||||
|
.Ft dc_ticks_t
|
||||||
|
.Fo dc_datetime_mktime
|
||||||
|
.Fa "const dc_datetime_t *dt"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Convert a broken-down local date and time created with
|
||||||
|
.Xr dc_datetime_localtime 3
|
||||||
|
into an integral timestamp.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
function may internally invoke libc's
|
||||||
|
.Xr mktime 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the integral time-stamp or -1 if the given date and time
|
||||||
|
may not sanely be converted.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_datetime_gmtime 3 ,
|
||||||
|
.Xr dc_datetime_localtime 3 ,
|
||||||
|
.Xr dc_datetime_now 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
55
doc/man/dc_datetime_now.3
Normal file
55
doc/man/dc_datetime_now.3
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 11, 2017
|
||||||
|
.Dt DC_DATETIME_NOW 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_datetime_now
|
||||||
|
.Nd return the current integral timestamp
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/datetime.h
|
||||||
|
.Ft dc_ticks_t
|
||||||
|
.Fo dc_datetime_now
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Get the current system timestamp as an integral value.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
function may invoke libc's
|
||||||
|
.Xr time 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This always returns the system time.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_datetime_gmtime 3 ,
|
||||||
|
.Xr dc_datetime_localtime 3 ,
|
||||||
|
.Xr dc_datetime_mktime 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
54
doc/man/dc_descriptor_free.3
Normal file
54
doc/man/dc_descriptor_free.3
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DESCRIPTOR_FREE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_descriptor_free
|
||||||
|
.Nd free a dive computer descriptor reference
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/descriptor.h
|
||||||
|
.Ft void
|
||||||
|
.Fo dc_descriptor_free
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Frees a descriptor usually returned with
|
||||||
|
.Xr dc_iterator_next 3
|
||||||
|
as created with
|
||||||
|
.Xr dc_descriptor_iterator 3 .
|
||||||
|
It's safe to pass
|
||||||
|
.Dv NULL
|
||||||
|
to this function.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_descriptor_iterator 3 ,
|
||||||
|
.Xr dc_iterator_free 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
52
doc/man/dc_descriptor_get_model.3
Normal file
52
doc/man/dc_descriptor_get_model.3
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" Copyright (C) 2018 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
|
||||||
|
.\" 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 August 19, 2018
|
||||||
|
.Dt DC_DESCRIPTOR_GET_MODEL 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_descriptor_get_model
|
||||||
|
.Nd get the model of a dive computer descriptor
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/descriptor.h
|
||||||
|
.Ft "unsigned int"
|
||||||
|
.Fo dc_descriptor_get_model
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.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.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the model number or 0 if none exists.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_descriptor_iterator 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
59
doc/man/dc_descriptor_get_product.3
Normal file
59
doc/man/dc_descriptor_get_product.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DESCRIPTOR_GET_PRODUCT 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_descriptor_get_product
|
||||||
|
.Nd get the product of a dive computer descriptor
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/descriptor.h
|
||||||
|
.Ft "const char *"
|
||||||
|
.Fo dc_descriptor_get_product
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Gets the product
|
||||||
|
.Pq e.g., Do D6i Dc for my Suunto
|
||||||
|
of a dive computer descriptor or
|
||||||
|
.Dv NULL
|
||||||
|
if none was declared.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the nil-terminated product string or
|
||||||
|
.Dv NULL
|
||||||
|
if none exists.
|
||||||
|
.Pp
|
||||||
|
The returned pointer is not valid after the
|
||||||
|
.Fa descriptor
|
||||||
|
has been freed.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_descriptor_get_vendor 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
72
doc/man/dc_descriptor_get_transports.3
Normal file
72
doc/man/dc_descriptor_get_transports.3
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
59
doc/man/dc_descriptor_get_vendor.3
Normal file
59
doc/man/dc_descriptor_get_vendor.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DESCRIPTOR_GET_VENDOR 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_descriptor_get_vendor
|
||||||
|
.Nd get the vendor of a dive computer descriptor
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/descriptor.h
|
||||||
|
.Ft "const char *"
|
||||||
|
.Fo dc_descriptor_get_vendor
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Gets the vendor
|
||||||
|
.Pq e.g., Dq Suunto
|
||||||
|
of a dive computer descriptor or
|
||||||
|
.Dv NULL
|
||||||
|
if none was declared.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns the nil-terminated vendor string or
|
||||||
|
.Dv NULL
|
||||||
|
if none exists.
|
||||||
|
.Pp
|
||||||
|
The returned pointer is not valid after the
|
||||||
|
.Fa descriptor
|
||||||
|
has been freed.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_descriptor_get_product 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
78
doc/man/dc_descriptor_iterator.3
Normal file
78
doc/man/dc_descriptor_iterator.3
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DESCRIPTOR_ITERATOR 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_descriptor_iterator
|
||||||
|
.Nd get all supported dive computers
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/descriptor.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_descriptor_iterator
|
||||||
|
.Fa "dc_iterator_t **iterator"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Gets all descriptors available to
|
||||||
|
.Lb libdivecomputer .
|
||||||
|
It must be matched with
|
||||||
|
.Xr dc_iterator_free 3
|
||||||
|
if the return value is
|
||||||
|
.Dv DC_STATUS_SUCCESS .
|
||||||
|
The
|
||||||
|
.Xr dc_iterator_next 3
|
||||||
|
function must be used to iterate over the iterator.
|
||||||
|
You must use
|
||||||
|
.Xr dc_descriptor_free 3
|
||||||
|
on the returned descriptor value.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
and fills in the
|
||||||
|
.Fa iterator
|
||||||
|
pointer on success.
|
||||||
|
.Sh EXAMPLES
|
||||||
|
The following iterates over all descriptors, printing the vendor, then
|
||||||
|
frees the iterator.
|
||||||
|
It does no error checking.
|
||||||
|
.Bd -literal
|
||||||
|
dc_descriptor_iterator(&iter));
|
||||||
|
while (dc_iterator_next(iter, &desc) == DC_STATUS_SUCCESS) {
|
||||||
|
printf("%s\en", dc_descriptor_get_vendor(desc));
|
||||||
|
dc_descriptor_free(desc);
|
||||||
|
}
|
||||||
|
dc_iterator_free(iter);
|
||||||
|
.Ed
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_descriptor_free 3 ,
|
||||||
|
.Xr dc_iterator_free 3 ,
|
||||||
|
.Xr dc_iterator_next 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
58
doc/man/dc_device_close.3
Normal file
58
doc/man/dc_device_close.3
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DEVICE_CLOSE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_close
|
||||||
|
.Nd close a dive computer device
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_close
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Closes a dive computer device opened with
|
||||||
|
.Xr dc_device_open 3 .
|
||||||
|
If
|
||||||
|
.Fa device
|
||||||
|
is
|
||||||
|
.Dv NULL ,
|
||||||
|
this returns
|
||||||
|
.Dv DC_STATUS_SUCCESS .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success or one of several error values on error.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
84
doc/man/dc_device_foreach.3
Normal file
84
doc/man/dc_device_foreach.3
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DEVICE_FOREACH 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_foreach
|
||||||
|
.Nd iterate over dives in a dive computer
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft typedef int
|
||||||
|
.Fo (*dc_dive_callback_t)
|
||||||
|
.Fa "const unsigned char *data"
|
||||||
|
.Fa "unsigned int size"
|
||||||
|
.Fa "const unsigned char *fingerprint"
|
||||||
|
.Fa "unsigned int fsize"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_foreach
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fa "dc_dive_callback_t callback"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Iterate over all dives on
|
||||||
|
.Fa device
|
||||||
|
by calling
|
||||||
|
.Fa callback
|
||||||
|
with
|
||||||
|
.Fa userdata .
|
||||||
|
.Pp
|
||||||
|
Each dive invokes
|
||||||
|
.Fa callback
|
||||||
|
with the dive data, which should be parsed with
|
||||||
|
.Xr dc_parser_new 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
|
||||||
|
encountered.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Fa callback
|
||||||
|
function must return non-zero to continue downloading dives, or zero to
|
||||||
|
stop.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success or one of several error values on error.
|
||||||
|
If
|
||||||
|
.Fa callback
|
||||||
|
returns zero, this will not be reflected in the return value (usually
|
||||||
|
.Dv DC_STATUS_SUCCESS ) .
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_parser_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
87
doc/man/dc_device_open.3
Normal file
87
doc/man/dc_device_open.3
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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_DEVICE_OPEN 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_open
|
||||||
|
.Nd open a dive computer device
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_open
|
||||||
|
.Fa "dc_device_t **device"
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.Fa "dc_iostream_t *iostream"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Open a dive computer device for processing.
|
||||||
|
Accepts a
|
||||||
|
.Fa context
|
||||||
|
opened with
|
||||||
|
.Xr dc_context_new 3 ,
|
||||||
|
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 ,
|
||||||
|
or
|
||||||
|
.Xr dc_bluetooth_open 3
|
||||||
|
.Pc .
|
||||||
|
.Pp
|
||||||
|
Upon returning
|
||||||
|
.Dv DC_STATUS_SUCCESS ,
|
||||||
|
the
|
||||||
|
.Fa device
|
||||||
|
pointer must be freed with
|
||||||
|
.Xr dc_device_close 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success or one of several error values on error.
|
||||||
|
On success, the
|
||||||
|
.Fa device
|
||||||
|
pointer is filled in with an open handle.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_context_new 3 ,
|
||||||
|
.Xr dc_descriptor_iterator 3 ,
|
||||||
|
.Xr dc_device_close 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
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
|
||||||
79
doc/man/dc_device_set_cancel.3
Normal file
79
doc/man/dc_device_set_cancel.3
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DEVICE_SET_CANCEL 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_set_cancel
|
||||||
|
.Nd callback to check whether processing should cancel
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft "typedef int"
|
||||||
|
.Fo "(*dc_cancel_callback_t)"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_set_cancel
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fa "dc_cancel_callback_t callback"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Provide a function that the underlying
|
||||||
|
.Fa device
|
||||||
|
will periodically call to see if it should cancel its processing.
|
||||||
|
The
|
||||||
|
.Fa callback
|
||||||
|
will return zero if the operation should not be cancelled, one if it
|
||||||
|
should be cancelled.
|
||||||
|
.Pp
|
||||||
|
The callback usually checks a value that is set during a signal handling
|
||||||
|
callback.
|
||||||
|
For example, one can invoke
|
||||||
|
.Xr signal 3
|
||||||
|
to a function that sets a
|
||||||
|
.Vt "volatile sig_atomic_t"
|
||||||
|
value checked by the
|
||||||
|
.Fa callback
|
||||||
|
handler.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_UNSUPPORTED
|
||||||
|
if the
|
||||||
|
.Fa device
|
||||||
|
is
|
||||||
|
.Dv NULL ,
|
||||||
|
or
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
otherwise.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
These manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
125
doc/man/dc_device_set_events.3
Normal file
125
doc/man/dc_device_set_events.3
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DEVICE_SET_EVENTS 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_set_events
|
||||||
|
.Nd set events logged during device interaction
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft "typedef void"
|
||||||
|
.Fo "(*dc_event_callback_t)"
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fa "dc_event_type_t event"
|
||||||
|
.Fa "const void *data"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_set_events
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fa "unsigned int events"
|
||||||
|
.Fa "dc_event_callback_t callback"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Register a series of event callbacks on a device opened with
|
||||||
|
.Xr dc_device_open 3 .
|
||||||
|
Event callbacks are informative messages during device processing passed
|
||||||
|
to the
|
||||||
|
.Fa callback
|
||||||
|
function with an optional argument
|
||||||
|
.Fa userdata.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Fa events
|
||||||
|
value is a bit-field of events, one of which is passed to the
|
||||||
|
.Fa callback
|
||||||
|
as
|
||||||
|
.Fa event .
|
||||||
|
The
|
||||||
|
.Fa data
|
||||||
|
field will be cast to an event-specific type:
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Dv DC_EVENT_WAITING
|
||||||
|
Indicate that the device is waiting for user input, such as activating
|
||||||
|
the data transfer mode on the device.
|
||||||
|
No
|
||||||
|
.Fa data
|
||||||
|
is set.
|
||||||
|
.It Dv DC_EVENT_PROGRESS
|
||||||
|
Progress metre of the parse.
|
||||||
|
The
|
||||||
|
.Fa data
|
||||||
|
variable is set to a
|
||||||
|
.Vt dc_event_progress_t ,
|
||||||
|
with the
|
||||||
|
.Va current
|
||||||
|
and
|
||||||
|
.Va maximum
|
||||||
|
progress values from which one can compute a percentage.
|
||||||
|
.It Dv DC_EVENT_DEVINFO
|
||||||
|
Sets the
|
||||||
|
.Fa data
|
||||||
|
value to a
|
||||||
|
.Vt dc_event_devinfo_t ,
|
||||||
|
which can be used to acquire the
|
||||||
|
.Va model ,
|
||||||
|
.Va firmware ,
|
||||||
|
and
|
||||||
|
.Va serial
|
||||||
|
numbers of the underlying device.
|
||||||
|
.It Dv DC_EVENT_CLOCK
|
||||||
|
Report the system (local machine) and device time in epoch seconds.
|
||||||
|
Fills in
|
||||||
|
.Fa data
|
||||||
|
as a
|
||||||
|
.Va dc_event_clock_t ,
|
||||||
|
with
|
||||||
|
.Va devtime
|
||||||
|
being the device and
|
||||||
|
.Va systime
|
||||||
|
being the system time.
|
||||||
|
See
|
||||||
|
.Xr time 3 .
|
||||||
|
.It Dv DC_EVENT_VENDOR
|
||||||
|
A vendor-specific event filling
|
||||||
|
.Fa data
|
||||||
|
as a
|
||||||
|
.Va dc_event_vendor_t .
|
||||||
|
.El
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success or one of several error values on error.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
These manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
70
doc/man/dc_device_set_fingerprint.3
Normal file
70
doc/man/dc_device_set_fingerprint.3
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_DEVICE_SET_FINGERPRINT 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_device_set_fingerprint
|
||||||
|
.Nd set the last-seen dive fingerprint
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/device.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_device_set_fingerprint
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fa "const unsigned char data[]"
|
||||||
|
.Fa "unsigned int size"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Sets the last-seen dive fingerprint on a device opened with
|
||||||
|
.Xr dc_device_open 3 .
|
||||||
|
This mechanism is used to only download dives
|
||||||
|
.Dq newer
|
||||||
|
.Po
|
||||||
|
as reported by the dive computer, not necessarily on the calendar
|
||||||
|
.Pc
|
||||||
|
than the last seen dive.
|
||||||
|
.Pp
|
||||||
|
In general usage, the fingerprint is acquired (and saved) from the first
|
||||||
|
dive downloaded from a dive computer by
|
||||||
|
.Xr dc_device_foreach 3 .
|
||||||
|
In subsequent openings of the device, the fingerprint is set with
|
||||||
|
.Nm
|
||||||
|
and, when a dive reports a fingerprint matching that dive, the download
|
||||||
|
exits before reporting that dive.
|
||||||
|
.Pq The first fingerprint is saved again for subsequent invocations.
|
||||||
|
In this way, only the newest dives are reported.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
if the fingerprint was set or one of several error values on error.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_device_open 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
60
doc/man/dc_iostream_close.3
Normal file
60
doc/man/dc_iostream_close.3
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
52
doc/man/dc_irda_device_free.3
Normal file
52
doc/man/dc_irda_device_free.3
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
59
doc/man/dc_irda_device_get_address.3
Normal file
59
doc/man/dc_irda_device_get_address.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
58
doc/man/dc_irda_device_get_name.3
Normal file
58
doc/man/dc_irda_device_get_name.3
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
102
doc/man/dc_irda_iterator_new.3
Normal file
102
doc/man/dc_irda_iterator_new.3
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
85
doc/man/dc_irda_open.3
Normal file
85
doc/man/dc_irda_open.3
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
56
doc/man/dc_iterator_free.3
Normal file
56
doc/man/dc_iterator_free.3
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_ITERATOR_FREE 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_iterator_free
|
||||||
|
.Nd frees an iterator
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/iterator.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_iterator_free
|
||||||
|
.Fa "dc_iterator_t *iterator"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Frees the iterator
|
||||||
|
.Fa iterator .
|
||||||
|
It may be invoked on any iterator type, e.g., one created with
|
||||||
|
.Xr dc_descriptor_iterator 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success (or if
|
||||||
|
.Fa iterator
|
||||||
|
is
|
||||||
|
.Dv NULL )
|
||||||
|
or other values on failure.
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
55
doc/man/dc_iterator_next.3
Normal file
55
doc/man/dc_iterator_next.3
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_ITERATOR_NEXT 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_iterator_next
|
||||||
|
.Nd next element in an iterator
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/iterator.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_iterator_next
|
||||||
|
.Fa "dc_iterator_t *iterator"
|
||||||
|
.Fa "void *item"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Fills in
|
||||||
|
.Fa item
|
||||||
|
with the next element in the iterator
|
||||||
|
.Fa iterator ,
|
||||||
|
which may not be
|
||||||
|
.Dv NULL .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
on success.
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
57
doc/man/dc_parser_destroy.3
Normal file
57
doc/man/dc_parser_destroy.3
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_PARSER_DESTROY 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_parser_destroy
|
||||||
|
.Nd destroys a single dive parser
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/parser.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_destroy
|
||||||
|
.Fa "dc_parser_t *parser"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Destroys a parser allocated with
|
||||||
|
.Xr dc_parser_new 3 .
|
||||||
|
The
|
||||||
|
.Fa parser
|
||||||
|
parameter may be
|
||||||
|
.Dv NULL ,
|
||||||
|
in which case it will return with success.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on success and another code on failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_parser_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
69
doc/man/dc_parser_get_datetime.3
Normal file
69
doc/man/dc_parser_get_datetime.3
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_PARSER_GET_DATETIME 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_parser_get_datetime
|
||||||
|
.Nd extract the date and time from a parsed dive
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/parser.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_get_datetime
|
||||||
|
.Fa "dc_parser_t *parser"
|
||||||
|
.Fa "dc_datetime_t *datetime"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Extract the date and time of a dive,
|
||||||
|
.Fa parser ,
|
||||||
|
previously initialised with
|
||||||
|
.Xr dc_parser_new 3 .
|
||||||
|
This returns the broken-down time-stamp of the dive in the local time of
|
||||||
|
the dive.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
function may internally invoke
|
||||||
|
.Xr dc_datetime_gmtime 3
|
||||||
|
or
|
||||||
|
.Xr dc_datetime_localtime 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
if the date and time were retrieved,
|
||||||
|
.Dv DC_STATUS_UNSUPPORTED
|
||||||
|
if the date and time are not supported by the device, or other error
|
||||||
|
messages on further failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_datetime_gmtime 3 ,
|
||||||
|
.Xr dc_datetime_localtime 3 ,
|
||||||
|
.Xr dc_parser_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
199
doc/man/dc_parser_get_field.3
Normal file
199
doc/man/dc_parser_get_field.3
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_PARSER_GET_FIELD 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_parser_get_field
|
||||||
|
.Nd extract a field from a parsed dive
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/parser.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_get_field
|
||||||
|
.Fa "dc_parser_t *parser"
|
||||||
|
.Fa "dc_field_type_t type"
|
||||||
|
.Fa "unsigned int flags"
|
||||||
|
.Fa "void *value"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Extract a field from a dive,
|
||||||
|
.Fa parser ,
|
||||||
|
previously initialised with
|
||||||
|
.Xr dc_parser_new 3 .
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
field type depends upon the
|
||||||
|
.Fa type .
|
||||||
|
The
|
||||||
|
.Fa flags
|
||||||
|
field is ignored for all types but
|
||||||
|
.Dv DC_FIELD_GASMIX
|
||||||
|
and
|
||||||
|
.Dv DC_FIELD_TANK .
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Fa type
|
||||||
|
may be one of the following values:
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Dv DC_FIELD_DIVETIME
|
||||||
|
Time (duration) of dive in seconds.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
must be an
|
||||||
|
.Vt unsigned int .
|
||||||
|
.It Dv DC_FIELD_MAXDEPTH
|
||||||
|
Maximum depth in metres.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_AVGDEPTH
|
||||||
|
Average depth (over all samples) in metres.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_GASMIX_COUNT
|
||||||
|
Number of different gas mixes used in this dive.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
must be a
|
||||||
|
.Vt unsigned int .
|
||||||
|
.It Dv DC_FIELD_GASMIX
|
||||||
|
Mixture for a particular gas.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
must be a
|
||||||
|
.Vt dc_gasmix_t ,
|
||||||
|
which has
|
||||||
|
.Vt double
|
||||||
|
fields for
|
||||||
|
.Va oxygen ,
|
||||||
|
.Va helium ,
|
||||||
|
and
|
||||||
|
.Va nitrogen .
|
||||||
|
These are set to the unit fraction of gas (not percentage).
|
||||||
|
The
|
||||||
|
.Fa flags
|
||||||
|
value is interpreted as the gas mixture index, which must be less than the
|
||||||
|
value of
|
||||||
|
.Dv DC_FIELD_GASMIX_COUNT .
|
||||||
|
.It Dv DC_FIELD_SALINITY
|
||||||
|
The water salinity as a
|
||||||
|
.Vt dc_salinity_t
|
||||||
|
field, which consists of a
|
||||||
|
.Va type ,
|
||||||
|
.Dv DC_WATER_FRESH
|
||||||
|
or
|
||||||
|
.Dv DC_WATER_SALT ,
|
||||||
|
and the salinity
|
||||||
|
.Va density .
|
||||||
|
.It Dv DC_FIELD_ATMOSPHERIC
|
||||||
|
Atmospheric pressure in bar.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
field must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_TEMPERATURE_SURFACE
|
||||||
|
Air temperature (at the surface) in Celsius.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
field must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_TEMPERATURE_MINIMUM
|
||||||
|
Minimum water temperature surface in Celsius.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
field must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_TEMPERATURE_MAXIMUM
|
||||||
|
Maximum water temperature in Celsius.
|
||||||
|
The
|
||||||
|
.Fa value
|
||||||
|
field must be a
|
||||||
|
.Vt double .
|
||||||
|
.It Dv DC_FIELD_TANK_COUNT
|
||||||
|
The number of tanks as an
|
||||||
|
.Vt unsigned int .
|
||||||
|
.It Dv DC_FIELD_TANK
|
||||||
|
Tank configuration as a
|
||||||
|
.Vt dc_tank_t .
|
||||||
|
This structure consists of a
|
||||||
|
.Va gasmix ,
|
||||||
|
which may be retrieved with
|
||||||
|
.Dv DC_FIELD_GASMIX ;
|
||||||
|
.Va type ,
|
||||||
|
the tank volume units as
|
||||||
|
.Dv DC_TANKVOLUME_NONE ,
|
||||||
|
.Dv DC_TANKVOLUME_IMPERIAL ,
|
||||||
|
or
|
||||||
|
.Dv DC_TANKVOLUME_METRIC ;
|
||||||
|
.Va volume ,
|
||||||
|
the tank volume in litres or zero if the tank is
|
||||||
|
.Dv DC_TANKVOLUME_NONE ;
|
||||||
|
.Va workpressure ,
|
||||||
|
the work pressure in bar or zero if
|
||||||
|
.Dv DC_TANKVOLUME_NONE
|
||||||
|
and maybe zero if
|
||||||
|
.Dv DC_TANKVOLUME_METRIC ;
|
||||||
|
.Va beginpressure
|
||||||
|
and
|
||||||
|
.Va endpressure
|
||||||
|
being the pressures at start and finish in bar.
|
||||||
|
The
|
||||||
|
.Fa flags
|
||||||
|
value is the tank index.
|
||||||
|
.It Dv DC_FIELD_DIVEMODE
|
||||||
|
Mode of the dive:
|
||||||
|
.Dv DC_DIVEMODE_FREEDIVE
|
||||||
|
for free-diving,
|
||||||
|
.Dv DC_DIVEMODE_GAUGE
|
||||||
|
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
|
||||||
|
.Dq rebreather
|
||||||
|
diving.
|
||||||
|
.El
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_SUCCESS
|
||||||
|
if the field was retrieved,
|
||||||
|
.Dv DC_STATUS_UNSUPPORTED
|
||||||
|
if the field is not supported by the device, or other error messages on
|
||||||
|
further failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_parser_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
76
doc/man/dc_parser_new.3
Normal file
76
doc/man/dc_parser_new.3
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_PARSER_NEW 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_parser_new ,
|
||||||
|
.Nm dc_parser_new2
|
||||||
|
.Nd create a parser for a single dive
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/parser.h
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_new
|
||||||
|
.Fa "dc_parser_t **parser"
|
||||||
|
.Fa "dc_device_t *device"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_new2
|
||||||
|
.Fa "dc_parser_t **parser"
|
||||||
|
.Fa "dc_context_t *context"
|
||||||
|
.Fa "dc_descriptor_t *descriptor"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Creates a parser for a single dive extracted from the dive computer with
|
||||||
|
.Xr dc_device_foreach 3 .
|
||||||
|
The parser operates on the data extracted: it does not touch the device
|
||||||
|
directly to acquire data.
|
||||||
|
Thus, there are two forms of invocation:
|
||||||
|
.Nm dc_parser_new ,
|
||||||
|
which extracts relevant values from the
|
||||||
|
.Fa device
|
||||||
|
parameter; and
|
||||||
|
.Nm dc_parser_new2 ,
|
||||||
|
which is given device values (model, etc.) directly.
|
||||||
|
.Pp
|
||||||
|
The pointer must later be freed with
|
||||||
|
.Xr dc_parser_destroy 3 .
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
These return
|
||||||
|
.Dv DC_STATUS_OK ,
|
||||||
|
and fill in the
|
||||||
|
.Fa parser
|
||||||
|
pointer on success.
|
||||||
|
Otherwise, an error is returned.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_device_foreach 3 ,
|
||||||
|
.Xr dc_parser_destroy 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
196
doc/man/dc_parser_samples_foreach.3
Normal file
196
doc/man/dc_parser_samples_foreach.3
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DC_PARSER_SAMPLES_FOREACH 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dc_parser_samples_foreach
|
||||||
|
.Nd iterate over samples taken during a dive
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In libdivecomputer/parser.h
|
||||||
|
.Ft "typedef void"
|
||||||
|
.Fo "(*dc_sample_callback_t)"
|
||||||
|
.Fa "dc_sample_type_t type"
|
||||||
|
.Fa "const dc_sample_value_t *value"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Ft dc_status_t
|
||||||
|
.Fo dc_parser_samples_foreach
|
||||||
|
.Fa "dc_parser_t *parser"
|
||||||
|
.Fa "dc_sample_callback_t callback"
|
||||||
|
.Fa "void *userdata"
|
||||||
|
.Fc
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
Extract the samples taken during a dive as previously initialised with
|
||||||
|
.Xr dc_parser_new 3 .
|
||||||
|
Each sample is passed to
|
||||||
|
.Fa callback
|
||||||
|
with the
|
||||||
|
.Fa type
|
||||||
|
of the sample and its data
|
||||||
|
.Fa value .
|
||||||
|
.Pp
|
||||||
|
Samples are invoked as a sequence of sample sets.
|
||||||
|
Each sequence begins with a
|
||||||
|
.Dv DC_SAMPLE_TIME ,
|
||||||
|
then a number of sample types in the set.
|
||||||
|
When the next
|
||||||
|
.Dv DC_SAMPLE_TIME
|
||||||
|
is recorded, the sample set may be closed and a new one reopened.
|
||||||
|
After all samples have been rendered, the last sample set should be
|
||||||
|
closed.
|
||||||
|
.Pp
|
||||||
|
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.
|
||||||
|
Set in the
|
||||||
|
.Fa time
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_DEPTH
|
||||||
|
The depth taken at the sample in metres.
|
||||||
|
Set in the
|
||||||
|
.Fa depth
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_PRESSURE
|
||||||
|
Tank pressure taken at the sample.
|
||||||
|
Sets the
|
||||||
|
.Fa tank
|
||||||
|
index (see the
|
||||||
|
.Dv DC_FIELD_TANK_COUNT
|
||||||
|
in
|
||||||
|
.Xr dc_parser_get_field 3 )
|
||||||
|
and the
|
||||||
|
.Fa pressure
|
||||||
|
in bar.
|
||||||
|
.It Dv DC_SAMPLE_TEMPERATURE
|
||||||
|
Temperature in celsius.
|
||||||
|
Sets the
|
||||||
|
.Fa temperature
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_EVENT
|
||||||
|
An diving event raised by the computer.
|
||||||
|
This may have the
|
||||||
|
.Va type
|
||||||
|
value of the
|
||||||
|
.Va event
|
||||||
|
structure set to
|
||||||
|
.Dv SAMPLE_EVENT_NONE ,
|
||||||
|
.Dv SAMPLE_EVENT_DECOSTOP ,
|
||||||
|
.Dv SAMPLE_EVENT_RBT ,
|
||||||
|
.Dv SAMPLE_EVENT_ASCENT ,
|
||||||
|
.Dv SAMPLE_EVENT_CEILING ,
|
||||||
|
.Dv SAMPLE_EVENT_WORKLOAD ,
|
||||||
|
.Dv SAMPLE_EVENT_TRANSMITTER ,
|
||||||
|
.Dv SAMPLE_EVENT_VIOLATION ,
|
||||||
|
.Dv SAMPLE_EVENT_BOOKMARK ,
|
||||||
|
.Dv SAMPLE_EVENT_SURFACE ,
|
||||||
|
.Dv SAMPLE_EVENT_SAFETYSTOP ,
|
||||||
|
.Dv SAMPLE_EVENT_SAFETYSTOP_VOLUNTARY ,
|
||||||
|
.Dv SAMPLE_EVENT_SAFETYSTOP_MANDATORY ,
|
||||||
|
.Dv SAMPLE_EVENT_DEEPSTOP ,
|
||||||
|
.Dv SAMPLE_EVENT_CEILING_SAFETYSTOP ,
|
||||||
|
.Dv SAMPLE_EVENT_FLOOR ,
|
||||||
|
.Dv SAMPLE_EVENT_DIVETIME ,
|
||||||
|
.Dv SAMPLE_EVENT_MAXDEPTH ,
|
||||||
|
.Dv SAMPLE_EVENT_OLF ,
|
||||||
|
.Dv SAMPLE_EVENT_PO2 ,
|
||||||
|
.Dv SAMPLE_EVENT_AIRTIME ,
|
||||||
|
.Dv SAMPLE_EVENT_RGBM ,
|
||||||
|
.Dv SAMPLE_EVENT_HEADING ,
|
||||||
|
or
|
||||||
|
.Dv SAMPLE_EVENT_TISSUELEVEL .
|
||||||
|
.It Dv DC_SAMPLE_RBT
|
||||||
|
The remaining bottom time in seconds.
|
||||||
|
Sets the
|
||||||
|
.Fa rbt
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_HEARTBEAT
|
||||||
|
The diver's heartbeat in beats per minute.
|
||||||
|
Sets the
|
||||||
|
.Fa heartbeat
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_BEARING
|
||||||
|
The diver's bearing in degrees.
|
||||||
|
Sets the
|
||||||
|
.Fa bearing
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_VENDOR
|
||||||
|
A vendor-specific data field.
|
||||||
|
.It Dv DC_SAMPLE_SETPOINT
|
||||||
|
The closed-circuit setpoint (PO2) has changed.
|
||||||
|
Sets the
|
||||||
|
.Fa setpoint
|
||||||
|
value in bar.
|
||||||
|
.It Dv DC_SAMPLE_PPO2
|
||||||
|
The partial pressure of oxygen has changed (in bar).
|
||||||
|
Sets the
|
||||||
|
.Fa ppo2
|
||||||
|
field.
|
||||||
|
.It Dv DC_SAMPLE_CNS
|
||||||
|
The CNS (central nervous system oxygen toxicity) value as a unit
|
||||||
|
fraction.
|
||||||
|
Sets the
|
||||||
|
.Fa cns
|
||||||
|
value.
|
||||||
|
.It Dv DC_SAMPLE_DECO
|
||||||
|
Decompression phase of
|
||||||
|
.Fa type
|
||||||
|
.Dv DC_DECO_NDL
|
||||||
|
.Pq no decompression limit ,
|
||||||
|
.Dv DC_DECO_SAFETYSTOP
|
||||||
|
.Pq the safety stop ,
|
||||||
|
.Dv DC_DECO_DECOSTOP
|
||||||
|
.Pq a decompression stop ,
|
||||||
|
or
|
||||||
|
.Dv DC_DECO_DEEPSTOP
|
||||||
|
.Pq a mandatory or suggested deep-stop .
|
||||||
|
Also sets the
|
||||||
|
.Fa depth
|
||||||
|
in metres and the
|
||||||
|
.Fa time
|
||||||
|
in seconds.
|
||||||
|
.It Dv DC_SAMPLE_GASMIX
|
||||||
|
Switch to a given gas mix index (see the
|
||||||
|
.Dv DC_FIELD_GASMIX_COUNT
|
||||||
|
in
|
||||||
|
.Xr dc_parser_get_field 3 ) .
|
||||||
|
Sets the
|
||||||
|
.Fa gasmix
|
||||||
|
field.
|
||||||
|
.El
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Returns
|
||||||
|
.Dv DC_STATUS_OK
|
||||||
|
on success and another code on failure.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dc_parser_new 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
The manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
52
doc/man/dc_serial_device_free.3
Normal file
52
doc/man/dc_serial_device_free.3
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
59
doc/man/dc_serial_device_get_name.3
Normal file
59
doc/man/dc_serial_device_get_name.3
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
99
doc/man/dc_serial_iterator_new.3
Normal file
99
doc/man/dc_serial_iterator_new.3
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
80
doc/man/dc_serial_open.3
Normal file
80
doc/man/dc_serial_open.3
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
52
doc/man/dc_usbhid_device_free.3
Normal file
52
doc/man/dc_usbhid_device_free.3
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
58
doc/man/dc_usbhid_device_get_pid.3
Normal file
58
doc/man/dc_usbhid_device_get_pid.3
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
58
doc/man/dc_usbhid_device_get_vid.3
Normal file
58
doc/man/dc_usbhid_device_get_vid.3
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
101
doc/man/dc_usbhid_iterator_new.3
Normal file
101
doc/man/dc_usbhid_iterator_new.3
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
77
doc/man/dc_usbhid_open.3
Normal file
77
doc/man/dc_usbhid_open.3
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
.\"
|
||||||
|
.\" 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 .
|
||||||
159
doc/man/libdivecomputer.3
Normal file
159
doc/man/libdivecomputer.3
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
.\"
|
||||||
|
.\" libdivecomputer
|
||||||
|
.\"
|
||||||
|
.\" 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
|
||||||
|
.\" 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 January 5, 2017
|
||||||
|
.Dt DIVECOMPUTER 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm divecomputer
|
||||||
|
.Nd communicate with dive computers
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libdivecomputer
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Nm divecomputer
|
||||||
|
library is a cross-platform and open source library for communication
|
||||||
|
with dive computers from various manufacturers.
|
||||||
|
Systems interfacing with
|
||||||
|
.Nm divecomputer
|
||||||
|
must link with
|
||||||
|
.Fl l Ns Ar divecomputer .
|
||||||
|
.Pp
|
||||||
|
A system wishing to query dives in a dive computer generally follows
|
||||||
|
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_set_logfunc 3
|
||||||
|
and
|
||||||
|
.Xr dc_context_set_loglevel 3 .
|
||||||
|
.It
|
||||||
|
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
|
||||||
|
.Xr dc_device_set_events 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,
|
||||||
|
respectively.
|
||||||
|
.It
|
||||||
|
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 .
|
||||||
|
.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_samples_foreach 3 .
|
||||||
|
.El
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
Most
|
||||||
|
.Nm libdivecomputer
|
||||||
|
functions return with a
|
||||||
|
.Vt dc_status_t
|
||||||
|
type with the following possible values:
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Dv DC_STATUS_SUCCESS
|
||||||
|
Completion with success: not an error.
|
||||||
|
.It Dv DC_STATUS_DONE
|
||||||
|
End of an iterator: not an error.
|
||||||
|
.It Dv DC_STATUS_UNSUPPORTED
|
||||||
|
Feature not implemented or not supported by device.
|
||||||
|
.Po
|
||||||
|
The difference depends on the context.
|
||||||
|
Since
|
||||||
|
.Nm libdivecomputer
|
||||||
|
is largely
|
||||||
|
based on reverse engineering, we often can't even tell them apart.
|
||||||
|
.Pc
|
||||||
|
.It Dv DC_STATUS_INVALIDARGS
|
||||||
|
Invalid parameter.
|
||||||
|
Usually indicates caller bug.
|
||||||
|
.It Dv DC_STATUS_NOMEMORY
|
||||||
|
Out of memory.
|
||||||
|
.It Dv DC_STATUS_NODEVICE
|
||||||
|
Device not found.
|
||||||
|
In this context the device refers to the low-level communication device
|
||||||
|
(serial, bluetooth, irda, etc), not the dive computer.
|
||||||
|
In most cases, and especially with serial communication, we can't detect
|
||||||
|
whether the dive computer is present.
|
||||||
|
This is always detected indirectly: no response is received, and thus a
|
||||||
|
timeout error.
|
||||||
|
.It Dv DC_STATUS_NOACCESS
|
||||||
|
Access denied (again, to the low-level communication device).
|
||||||
|
.It Dv DC_STATUS_TIMEOUT
|
||||||
|
See
|
||||||
|
.Dv DC_STATUS_NODEVICE .
|
||||||
|
.It Dv DC_STATUS_IO
|
||||||
|
Any other I/O error.
|
||||||
|
.It Dv DC_STATUS_PROTOCOL
|
||||||
|
Encountered unexpected data in the communication protocol data packets,
|
||||||
|
e.g., while downloading.
|
||||||
|
.It Dv DC_STATUS_DATAFORMAT
|
||||||
|
Encountered unexpected data in the interpretation of data contents,
|
||||||
|
e.g., while parsing.
|
||||||
|
.It Dv DC_STATUS_CANCELLED
|
||||||
|
Returned when the cancel callback requested to cancel the operation.
|
||||||
|
Note that cancellation is only checked at specific (safe) points, so
|
||||||
|
it's certainly possible it may not get noticed immediately and still
|
||||||
|
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
|
||||||
|
.Sh AUTHORS
|
||||||
|
The
|
||||||
|
.Lb libdivecomputer
|
||||||
|
library was written by
|
||||||
|
.An Jef Driesen ,
|
||||||
|
.Mt jef@libdivecomputer.org .
|
||||||
|
These manpages were written by
|
||||||
|
.An Kristaps Dzonsons ,
|
||||||
|
.Mt kristaps@bsd.lv .
|
||||||
@ -12,11 +12,13 @@ dctool_SOURCES = \
|
|||||||
dctool_help.c \
|
dctool_help.c \
|
||||||
dctool_version.c \
|
dctool_version.c \
|
||||||
dctool_list.c \
|
dctool_list.c \
|
||||||
|
dctool_scan.c \
|
||||||
dctool_download.c \
|
dctool_download.c \
|
||||||
dctool_dump.c \
|
dctool_dump.c \
|
||||||
dctool_parse.c \
|
dctool_parse.c \
|
||||||
dctool_read.c \
|
dctool_read.c \
|
||||||
dctool_write.c \
|
dctool_write.c \
|
||||||
|
dctool_timesync.c \
|
||||||
dctool_fwupdate.c \
|
dctool_fwupdate.c \
|
||||||
output.h \
|
output.h \
|
||||||
output-private.h \
|
output-private.h \
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
@ -27,6 +28,12 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#endif
|
#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 "common.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
@ -44,6 +51,11 @@ typedef struct backend_table_t {
|
|||||||
unsigned int model;
|
unsigned int model;
|
||||||
} backend_table_t;
|
} 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[] = {
|
static const backend_table_t g_backends[] = {
|
||||||
{"solution", DC_FAMILY_SUUNTO_SOLUTION, 0},
|
{"solution", DC_FAMILY_SUUNTO_SOLUTION, 0},
|
||||||
{"eon", DC_FAMILY_SUUNTO_EON, 0},
|
{"eon", DC_FAMILY_SUUNTO_EON, 0},
|
||||||
@ -54,13 +66,13 @@ static const backend_table_t g_backends[] = {
|
|||||||
{"aladin", DC_FAMILY_UWATEC_ALADIN, 0x3F},
|
{"aladin", DC_FAMILY_UWATEC_ALADIN, 0x3F},
|
||||||
{"memomouse", DC_FAMILY_UWATEC_MEMOMOUSE, 0},
|
{"memomouse", DC_FAMILY_UWATEC_MEMOMOUSE, 0},
|
||||||
{"smart", DC_FAMILY_UWATEC_SMART, 0x10},
|
{"smart", DC_FAMILY_UWATEC_SMART, 0x10},
|
||||||
{"meridian", DC_FAMILY_UWATEC_MERIDIAN, 0x20},
|
|
||||||
{"sensus", DC_FAMILY_REEFNET_SENSUS, 1},
|
{"sensus", DC_FAMILY_REEFNET_SENSUS, 1},
|
||||||
{"sensuspro", DC_FAMILY_REEFNET_SENSUSPRO, 2},
|
{"sensuspro", DC_FAMILY_REEFNET_SENSUSPRO, 2},
|
||||||
{"sensusultra", DC_FAMILY_REEFNET_SENSUSULTRA, 3},
|
{"sensusultra", DC_FAMILY_REEFNET_SENSUSULTRA, 3},
|
||||||
{"vtpro", DC_FAMILY_OCEANIC_VTPRO, 0x4245},
|
{"vtpro", DC_FAMILY_OCEANIC_VTPRO, 0x4245},
|
||||||
{"veo250", DC_FAMILY_OCEANIC_VEO250, 0x424C},
|
{"veo250", DC_FAMILY_OCEANIC_VEO250, 0x424C},
|
||||||
{"atom2", DC_FAMILY_OCEANIC_ATOM2, 0x4342},
|
{"atom2", DC_FAMILY_OCEANIC_ATOM2, 0x4342},
|
||||||
|
{"i330r", DC_FAMILY_PELAGIC_I330R, 0x4744},
|
||||||
{"nemo", DC_FAMILY_MARES_NEMO, 0},
|
{"nemo", DC_FAMILY_MARES_NEMO, 0},
|
||||||
{"puck", DC_FAMILY_MARES_PUCK, 7},
|
{"puck", DC_FAMILY_MARES_PUCK, 7},
|
||||||
{"darwin", DC_FAMILY_MARES_DARWIN, 0},
|
{"darwin", DC_FAMILY_MARES_DARWIN, 0},
|
||||||
@ -70,6 +82,7 @@ static const backend_table_t g_backends[] = {
|
|||||||
{"ostc3", DC_FAMILY_HW_OSTC3, 0x0A},
|
{"ostc3", DC_FAMILY_HW_OSTC3, 0x0A},
|
||||||
{"edy", DC_FAMILY_CRESSI_EDY, 0x08},
|
{"edy", DC_FAMILY_CRESSI_EDY, 0x08},
|
||||||
{"leonardo", DC_FAMILY_CRESSI_LEONARDO, 1},
|
{"leonardo", DC_FAMILY_CRESSI_LEONARDO, 1},
|
||||||
|
{"goa", DC_FAMILY_CRESSI_GOA, 2},
|
||||||
{"n2ition3", DC_FAMILY_ZEAGLE_N2ITION3, 0},
|
{"n2ition3", DC_FAMILY_ZEAGLE_N2ITION3, 0},
|
||||||
{"cobalt", DC_FAMILY_ATOMICS_COBALT, 0},
|
{"cobalt", DC_FAMILY_ATOMICS_COBALT, 0},
|
||||||
{"predator", DC_FAMILY_SHEARWATER_PREDATOR, 2},
|
{"predator", DC_FAMILY_SHEARWATER_PREDATOR, 2},
|
||||||
@ -78,6 +91,24 @@ static const backend_table_t g_backends[] = {
|
|||||||
{"aqualand", DC_FAMILY_CITIZEN_AQUALAND, 0},
|
{"aqualand", DC_FAMILY_CITIZEN_AQUALAND, 0},
|
||||||
{"idive", DC_FAMILY_DIVESYSTEM_IDIVE, 0x03},
|
{"idive", DC_FAMILY_DIVESYSTEM_IDIVE, 0x03},
|
||||||
{"cochran", DC_FAMILY_COCHRAN_COMMANDER, 0},
|
{"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},
|
||||||
|
};
|
||||||
|
|
||||||
|
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},
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
@ -144,6 +175,41 @@ dctool_family_model (dc_family_t type)
|
|||||||
return 0;
|
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
|
void
|
||||||
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
|
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
|
||||||
{
|
{
|
||||||
@ -339,3 +405,184 @@ dctool_file_read (const char *filename)
|
|||||||
|
|
||||||
return buffer;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include <libdivecomputer/context.h>
|
#include <libdivecomputer/context.h>
|
||||||
#include <libdivecomputer/descriptor.h>
|
#include <libdivecomputer/descriptor.h>
|
||||||
|
#include <libdivecomputer/iostream.h>
|
||||||
#include <libdivecomputer/device.h>
|
#include <libdivecomputer/device.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -42,6 +43,15 @@ dctool_family_name (dc_family_t type);
|
|||||||
unsigned int
|
unsigned int
|
||||||
dctool_family_model (dc_family_t type);
|
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
|
void
|
||||||
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata);
|
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata);
|
||||||
|
|
||||||
@ -57,6 +67,9 @@ dctool_file_write (const char *filename, dc_buffer_t *buffer);
|
|||||||
dc_buffer_t *
|
dc_buffer_t *
|
||||||
dctool_file_read (const char *filename);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|||||||
@ -24,10 +24,12 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -48,7 +50,7 @@
|
|||||||
#define RESET 1
|
#define RESET 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GLIBC__) || defined(__MINGW32__) || defined(BSD)
|
#if defined(__GLIBC__) || defined(__MINGW32__) || defined(BSD) || defined(__ANDROID__)
|
||||||
#define NOPERMUTATION "+"
|
#define NOPERMUTATION "+"
|
||||||
#else
|
#else
|
||||||
#define NOPERMUTATION ""
|
#define NOPERMUTATION ""
|
||||||
@ -58,11 +60,13 @@ static const dctool_command_t *g_commands[] = {
|
|||||||
&dctool_help,
|
&dctool_help,
|
||||||
&dctool_version,
|
&dctool_version,
|
||||||
&dctool_list,
|
&dctool_list,
|
||||||
|
&dctool_scan,
|
||||||
&dctool_download,
|
&dctool_download,
|
||||||
&dctool_dump,
|
&dctool_dump,
|
||||||
&dctool_parse,
|
&dctool_parse,
|
||||||
&dctool_read,
|
&dctool_read,
|
||||||
&dctool_write,
|
&dctool_write,
|
||||||
|
&dctool_timesync,
|
||||||
&dctool_fwupdate,
|
&dctool_fwupdate,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
@ -238,7 +242,8 @@ main (int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Translate the help option into a command.
|
// Translate the help option into a command.
|
||||||
char *argv_help[] = {(char *) "help", NULL, NULL};
|
char helpcmd[] = "help";
|
||||||
|
char *argv_help[] = {helpcmd, NULL, NULL};
|
||||||
if (help || argv[0] == NULL) {
|
if (help || argv[0] == NULL) {
|
||||||
if (argv[0]) {
|
if (argv[0]) {
|
||||||
argv_help[1] = argv[0];
|
argv_help[1] = argv[0];
|
||||||
@ -274,14 +279,7 @@ main (int argc, char *argv[])
|
|||||||
dc_context_set_loglevel (context, loglevel);
|
dc_context_set_loglevel (context, loglevel);
|
||||||
dc_context_set_logfunc (context, logfunc, NULL);
|
dc_context_set_logfunc (context, logfunc, NULL);
|
||||||
|
|
||||||
if (command->config & DCTOOL_CONFIG_DESCRIPTOR) {
|
if (device != NULL || family != DC_FAMILY_NULL) {
|
||||||
// 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.
|
// Search for a matching device descriptor.
|
||||||
status = dctool_descriptor_search (&descriptor, device, family, model);
|
status = dctool_descriptor_search (&descriptor, device, family, model);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
@ -303,6 +301,13 @@ 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.
|
// Execute the command.
|
||||||
exitcode = command->run (argc, argv, context, descriptor);
|
exitcode = command->run (argc, argv, context, descriptor);
|
||||||
|
|
||||||
|
|||||||
@ -45,11 +45,13 @@ typedef struct dctool_command_t {
|
|||||||
extern const dctool_command_t dctool_help;
|
extern const dctool_command_t dctool_help;
|
||||||
extern const dctool_command_t dctool_version;
|
extern const dctool_command_t dctool_version;
|
||||||
extern const dctool_command_t dctool_list;
|
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_download;
|
||||||
extern const dctool_command_t dctool_dump;
|
extern const dctool_command_t dctool_dump;
|
||||||
extern const dctool_command_t dctool_parse;
|
extern const dctool_command_t dctool_parse;
|
||||||
extern const dctool_command_t dctool_read;
|
extern const dctool_command_t dctool_read;
|
||||||
extern const dctool_command_t dctool_write;
|
extern const dctool_command_t dctool_write;
|
||||||
|
extern const dctool_command_t dctool_timesync;
|
||||||
extern const dctool_command_t dctool_fwupdate;
|
extern const dctool_command_t dctool_fwupdate;
|
||||||
|
|
||||||
const dctool_command_t *
|
const dctool_command_t *
|
||||||
|
|||||||
@ -24,9 +24,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -78,20 +80,12 @@ dive_cb (const unsigned char *data, unsigned int size, const unsigned char *fing
|
|||||||
|
|
||||||
// Create the parser.
|
// Create the parser.
|
||||||
message ("Creating the parser.\n");
|
message ("Creating the parser.\n");
|
||||||
rc = dc_parser_new (&parser, divedata->device);
|
rc = dc_parser_new (&parser, divedata->device, data, size);
|
||||||
if (rc != DC_STATUS_SUCCESS) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error creating the parser.");
|
ERROR ("Error creating the parser.");
|
||||||
goto cleanup;
|
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.
|
// Parse the dive data.
|
||||||
message ("Parsing the dive data.\n");
|
message ("Parsing the dive data.\n");
|
||||||
rc = dctool_output_write (divedata->output, parser, data, size, fingerprint, fsize);
|
rc = dctool_output_write (divedata->output, parser, data, size, fingerprint, fsize);
|
||||||
@ -152,18 +146,28 @@ event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *us
|
|||||||
}
|
}
|
||||||
|
|
||||||
static dc_status_t
|
static dc_status_t
|
||||||
download (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, const char *cachedir, dc_buffer_t *fingerprint, dctool_output_t *output)
|
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)
|
||||||
{
|
{
|
||||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||||
|
dc_iostream_t *iostream = NULL;
|
||||||
dc_device_t *device = NULL;
|
dc_device_t *device = NULL;
|
||||||
dc_buffer_t *ofingerprint = NULL;
|
dc_buffer_t *ofingerprint = NULL;
|
||||||
|
|
||||||
// Open the device.
|
// Open the I/O stream.
|
||||||
message ("Opening the device (%s %s, %s).\n",
|
message ("Opening the I/O stream (%s, %s).\n",
|
||||||
dc_descriptor_get_vendor (descriptor),
|
dctool_transport_name (transport),
|
||||||
dc_descriptor_get_product (descriptor),
|
|
||||||
devname ? devname : "null");
|
devname ? devname : "null");
|
||||||
rc = dc_device_open (&device, context, descriptor, devname);
|
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) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error opening the device.");
|
ERROR ("Error opening the device.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -236,6 +240,7 @@ download (dc_context_t *context, dc_descriptor_t *descriptor, const char *devnam
|
|||||||
cleanup:
|
cleanup:
|
||||||
dc_buffer_free (ofingerprint);
|
dc_buffer_free (ofingerprint);
|
||||||
dc_device_close (device);
|
dc_device_close (device);
|
||||||
|
dc_iostream_close (iostream);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,6 +252,7 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
dc_buffer_t *fingerprint = NULL;
|
dc_buffer_t *fingerprint = NULL;
|
||||||
dctool_output_t *output = NULL;
|
dctool_output_t *output = NULL;
|
||||||
dctool_units_t units = DCTOOL_UNITS_METRIC;
|
dctool_units_t units = DCTOOL_UNITS_METRIC;
|
||||||
|
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||||
|
|
||||||
// Default option values.
|
// Default option values.
|
||||||
unsigned int help = 0;
|
unsigned int help = 0;
|
||||||
@ -257,10 +263,11 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
|
|
||||||
// Parse the command-line options.
|
// Parse the command-line options.
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
const char *optstring = "ho:p:c:f:u:";
|
const char *optstring = "ht:o:p:c:f:u:";
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"transport", required_argument, 0, 't'},
|
||||||
{"output", required_argument, 0, 'o'},
|
{"output", required_argument, 0, 'o'},
|
||||||
{"fingerprint", required_argument, 0, 'p'},
|
{"fingerprint", required_argument, 0, 'p'},
|
||||||
{"cache", required_argument, 0, 'c'},
|
{"cache", required_argument, 0, 'c'},
|
||||||
@ -276,6 +283,9 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
case 'h':
|
case 'h':
|
||||||
help = 1;
|
help = 1;
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
transport = dctool_transport_type (optarg);
|
||||||
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
filename = optarg;
|
filename = optarg;
|
||||||
break;
|
break;
|
||||||
@ -308,6 +318,13 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
return EXIT_SUCCESS;
|
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.
|
// Convert the fingerprint to binary.
|
||||||
fingerprint = dctool_convert_hex2bin (fphex);
|
fingerprint = dctool_convert_hex2bin (fphex);
|
||||||
|
|
||||||
@ -328,7 +345,7 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Download the dives.
|
// Download the dives.
|
||||||
status = download (context, descriptor, argv[0], cachedir, fingerprint, output);
|
status = download (context, descriptor, transport, argv[0], cachedir, fingerprint, output);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||||
exitcode = EXIT_FAILURE;
|
exitcode = EXIT_FAILURE;
|
||||||
@ -352,6 +369,7 @@ const dctool_command_t dctool_download = {
|
|||||||
"Options:\n"
|
"Options:\n"
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
" -h, --help Show help message\n"
|
" -h, --help Show help message\n"
|
||||||
|
" -t, --transport <name> Transport type\n"
|
||||||
" -o, --output <filename> Output filename\n"
|
" -o, --output <filename> Output filename\n"
|
||||||
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
||||||
" -c, --cache <directory> Cache directory\n"
|
" -c, --cache <directory> Cache directory\n"
|
||||||
@ -359,6 +377,7 @@ const dctool_command_t dctool_download = {
|
|||||||
" -u, --units <units> Set units (metric or imperial)\n"
|
" -u, --units <units> Set units (metric or imperial)\n"
|
||||||
#else
|
#else
|
||||||
" -h Show help message\n"
|
" -h Show help message\n"
|
||||||
|
" -t <transport> Transport type\n"
|
||||||
" -o <filename> Output filename\n"
|
" -o <filename> Output filename\n"
|
||||||
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
||||||
" -c <directory> Cache directory\n"
|
" -c <directory> Cache directory\n"
|
||||||
|
|||||||
@ -24,9 +24,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -40,17 +42,27 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
static dc_status_t
|
static dc_status_t
|
||||||
dump (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, dc_buffer_t *fingerprint, dc_buffer_t *buffer)
|
dump (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, dc_buffer_t *fingerprint, dc_buffer_t *buffer)
|
||||||
{
|
{
|
||||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||||
|
dc_iostream_t *iostream = NULL;
|
||||||
dc_device_t *device = NULL;
|
dc_device_t *device = NULL;
|
||||||
|
|
||||||
// Open the device.
|
// Open the I/O stream.
|
||||||
message ("Opening the device (%s %s, %s).\n",
|
message ("Opening the I/O stream (%s, %s).\n",
|
||||||
dc_descriptor_get_vendor (descriptor),
|
dctool_transport_name (transport),
|
||||||
dc_descriptor_get_product (descriptor),
|
|
||||||
devname ? devname : "null");
|
devname ? devname : "null");
|
||||||
rc = dc_device_open (&device, context, descriptor, devname);
|
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) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error opening the device.");
|
ERROR ("Error opening the device.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -93,6 +105,7 @@ dump (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, d
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
dc_device_close (device);
|
dc_device_close (device);
|
||||||
|
dc_iostream_close (iostream);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,6 +116,7 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
dc_status_t status = DC_STATUS_SUCCESS;
|
dc_status_t status = DC_STATUS_SUCCESS;
|
||||||
dc_buffer_t *fingerprint = NULL;
|
dc_buffer_t *fingerprint = NULL;
|
||||||
dc_buffer_t *buffer = NULL;
|
dc_buffer_t *buffer = NULL;
|
||||||
|
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||||
|
|
||||||
// Default option values.
|
// Default option values.
|
||||||
unsigned int help = 0;
|
unsigned int help = 0;
|
||||||
@ -111,10 +125,11 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
|
|
||||||
// Parse the command-line options.
|
// Parse the command-line options.
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
const char *optstring = "ho:p:";
|
const char *optstring = "ht:o:p:";
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"transport", required_argument, 0, 't'},
|
||||||
{"output", required_argument, 0, 'o'},
|
{"output", required_argument, 0, 'o'},
|
||||||
{"fingerprint", required_argument, 0, 'p'},
|
{"fingerprint", required_argument, 0, 'p'},
|
||||||
{0, 0, 0, 0 }
|
{0, 0, 0, 0 }
|
||||||
@ -127,6 +142,9 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
case 'h':
|
case 'h':
|
||||||
help = 1;
|
help = 1;
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
transport = dctool_transport_type (optarg);
|
||||||
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
filename = optarg;
|
filename = optarg;
|
||||||
break;
|
break;
|
||||||
@ -147,6 +165,13 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
return EXIT_SUCCESS;
|
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.
|
// Convert the fingerprint to binary.
|
||||||
fingerprint = dctool_convert_hex2bin (fphex);
|
fingerprint = dctool_convert_hex2bin (fphex);
|
||||||
|
|
||||||
@ -154,7 +179,7 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
buffer = dc_buffer_new (0);
|
buffer = dc_buffer_new (0);
|
||||||
|
|
||||||
// Download the memory dump.
|
// Download the memory dump.
|
||||||
status = dump (context, descriptor, argv[0], fingerprint, buffer);
|
status = dump (context, descriptor, transport, argv[0], fingerprint, buffer);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||||
exitcode = EXIT_FAILURE;
|
exitcode = EXIT_FAILURE;
|
||||||
@ -181,10 +206,12 @@ const dctool_command_t dctool_dump = {
|
|||||||
"Options:\n"
|
"Options:\n"
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
" -h, --help Show help message\n"
|
" -h, --help Show help message\n"
|
||||||
|
" -t, --transport <name> Transport type\n"
|
||||||
" -o, --output <filename> Output filename\n"
|
" -o, --output <filename> Output filename\n"
|
||||||
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
" -p, --fingerprint <data> Fingerprint data (hexadecimal)\n"
|
||||||
#else
|
#else
|
||||||
" -h Show help message\n"
|
" -h Show help message\n"
|
||||||
|
" -t <transport> Transport type\n"
|
||||||
" -o <filename> Output filename\n"
|
" -o <filename> Output filename\n"
|
||||||
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
" -p <fingerprint> Fingerprint data (hexadecimal)\n"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -24,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -35,23 +37,34 @@
|
|||||||
#include <libdivecomputer/device.h>
|
#include <libdivecomputer/device.h>
|
||||||
#include <libdivecomputer/hw_ostc.h>
|
#include <libdivecomputer/hw_ostc.h>
|
||||||
#include <libdivecomputer/hw_ostc3.h>
|
#include <libdivecomputer/hw_ostc3.h>
|
||||||
|
#include <libdivecomputer/divesystem_idive.h>
|
||||||
|
|
||||||
#include "dctool.h"
|
#include "dctool.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
static dc_status_t
|
static dc_status_t
|
||||||
fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, const char *hexfile)
|
fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, const char *hexfile)
|
||||||
{
|
{
|
||||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||||
|
dc_iostream_t *iostream = NULL;
|
||||||
dc_device_t *device = NULL;
|
dc_device_t *device = NULL;
|
||||||
|
|
||||||
// Open the device.
|
// Open the I/O stream.
|
||||||
message ("Opening the device (%s %s, %s).\n",
|
message ("Opening the I/O stream (%s, %s).\n",
|
||||||
dc_descriptor_get_vendor (descriptor),
|
dctool_transport_name (transport),
|
||||||
dc_descriptor_get_product (descriptor),
|
|
||||||
devname ? devname : "null");
|
devname ? devname : "null");
|
||||||
rc = dc_device_open (&device, context, descriptor, devname);
|
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) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error opening the device.");
|
ERROR ("Error opening the device.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -83,6 +96,9 @@ fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, const char *devnam
|
|||||||
case DC_FAMILY_HW_OSTC3:
|
case DC_FAMILY_HW_OSTC3:
|
||||||
rc = hw_ostc3_device_fwupdate (device, hexfile);
|
rc = hw_ostc3_device_fwupdate (device, hexfile);
|
||||||
break;
|
break;
|
||||||
|
case DC_FAMILY_DIVESYSTEM_IDIVE:
|
||||||
|
rc = divesystem_idive_device_fwupdate (device, hexfile);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rc = DC_STATUS_UNSUPPORTED;
|
rc = DC_STATUS_UNSUPPORTED;
|
||||||
break;
|
break;
|
||||||
@ -94,6 +110,7 @@ fwupdate (dc_context_t *context, dc_descriptor_t *descriptor, const char *devnam
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
dc_device_close (device);
|
dc_device_close (device);
|
||||||
|
dc_iostream_close (iostream);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,6 +119,7 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
{
|
{
|
||||||
int exitcode = EXIT_SUCCESS;
|
int exitcode = EXIT_SUCCESS;
|
||||||
dc_status_t status = DC_STATUS_SUCCESS;
|
dc_status_t status = DC_STATUS_SUCCESS;
|
||||||
|
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||||
|
|
||||||
// Default option values.
|
// Default option values.
|
||||||
unsigned int help = 0;
|
unsigned int help = 0;
|
||||||
@ -109,10 +127,11 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
|
|
||||||
// Parse the command-line options.
|
// Parse the command-line options.
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
const char *optstring = "hf:";
|
const char *optstring = "ht:f:";
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"transport", required_argument, 0, 't'},
|
||||||
{"firmware", required_argument, 0, 'f'},
|
{"firmware", required_argument, 0, 'f'},
|
||||||
{0, 0, 0, 0 }
|
{0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
@ -124,6 +143,9 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
case 'f':
|
case 'f':
|
||||||
filename = optarg;
|
filename = optarg;
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
transport = dctool_transport_type (optarg);
|
||||||
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
help = 1;
|
help = 1;
|
||||||
break;
|
break;
|
||||||
@ -141,6 +163,13 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
return EXIT_SUCCESS;
|
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.
|
// Check mandatory arguments.
|
||||||
if (!filename) {
|
if (!filename) {
|
||||||
message ("No firmware file specified.\n");
|
message ("No firmware file specified.\n");
|
||||||
@ -149,7 +178,7 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update the firmware.
|
// Update the firmware.
|
||||||
status = fwupdate (context, descriptor, argv[0], filename);
|
status = fwupdate (context, descriptor, transport, argv[0], filename);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||||
exitcode = EXIT_FAILURE;
|
exitcode = EXIT_FAILURE;
|
||||||
@ -171,9 +200,11 @@ const dctool_command_t dctool_fwupdate = {
|
|||||||
"Options:\n"
|
"Options:\n"
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
" -h, --help Show help message\n"
|
" -h, --help Show help message\n"
|
||||||
|
" -t, --transport <name> Transport type\n"
|
||||||
" -f, --firmware <filename> Firmware filename\n"
|
" -f, --firmware <filename> Firmware filename\n"
|
||||||
#else
|
#else
|
||||||
" -h Show help message\n"
|
" -h Show help message\n"
|
||||||
|
" -t <transport> Transport type\n"
|
||||||
" -f <filename> Firmware filename\n"
|
" -f <filename> Firmware filename\n"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|||||||
@ -24,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -24,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -24,9 +24,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -35,20 +37,6 @@
|
|||||||
#include <libdivecomputer/descriptor.h>
|
#include <libdivecomputer/descriptor.h>
|
||||||
#include <libdivecomputer/parser.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 "dctool.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
@ -66,17 +54,17 @@ parse (dc_buffer_t *buffer, dc_context_t *context, dc_descriptor_t *descriptor,
|
|||||||
|
|
||||||
// Create the parser.
|
// Create the parser.
|
||||||
message ("Creating the parser.\n");
|
message ("Creating the parser.\n");
|
||||||
rc = dc_parser_new2 (&parser, context, descriptor, devtime, systime);
|
rc = dc_parser_new2 (&parser, context, descriptor, data, size);
|
||||||
if (rc != DC_STATUS_SUCCESS) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error creating the parser.");
|
ERROR ("Error creating the parser.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register the data.
|
// Set the clock.
|
||||||
message ("Registering the data.\n");
|
message ("Setting the clock.\n");
|
||||||
rc = dc_parser_set_data (parser, data, size);
|
rc = dc_parser_set_clock (parser, devtime, systime);
|
||||||
if (rc != DC_STATUS_SUCCESS) {
|
if (rc != DC_STATUS_SUCCESS && rc != DC_STATUS_UNSUPPORTED) {
|
||||||
ERROR ("Error registering the data.");
|
ERROR ("Error setting the clock.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,7 +154,7 @@ dctool_parse_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned int i = 0; i < argc; ++i) {
|
for (int i = 0; i < argc; ++i) {
|
||||||
// Read the input file.
|
// Read the input file.
|
||||||
buffer = dctool_file_read (argv[i]);
|
buffer = dctool_file_read (argv[i]);
|
||||||
if (buffer == NULL) {
|
if (buffer == NULL) {
|
||||||
|
|||||||
@ -24,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -39,17 +41,27 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
static dc_status_t
|
static dc_status_t
|
||||||
doread (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
doread (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||||
{
|
{
|
||||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||||
|
dc_iostream_t *iostream = NULL;
|
||||||
dc_device_t *device = NULL;
|
dc_device_t *device = NULL;
|
||||||
|
|
||||||
// Open the device.
|
// Open the I/O stream.
|
||||||
message ("Opening the device (%s %s, %s).\n",
|
message ("Opening the I/O stream (%s, %s).\n",
|
||||||
dc_descriptor_get_vendor (descriptor),
|
dctool_transport_name (transport),
|
||||||
dc_descriptor_get_product (descriptor),
|
|
||||||
devname ? devname : "null");
|
devname ? devname : "null");
|
||||||
rc = dc_device_open (&device, context, descriptor, devname);
|
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) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error opening the device.");
|
ERROR ("Error opening the device.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -82,6 +94,7 @@ doread (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
dc_device_close (device);
|
dc_device_close (device);
|
||||||
|
dc_iostream_close (iostream);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +104,7 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
int exitcode = EXIT_SUCCESS;
|
int exitcode = EXIT_SUCCESS;
|
||||||
dc_status_t status = DC_STATUS_SUCCESS;
|
dc_status_t status = DC_STATUS_SUCCESS;
|
||||||
dc_buffer_t *buffer = NULL;
|
dc_buffer_t *buffer = NULL;
|
||||||
|
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||||
|
|
||||||
// Default option values.
|
// Default option values.
|
||||||
unsigned int help = 0;
|
unsigned int help = 0;
|
||||||
@ -100,10 +114,11 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
|
|
||||||
// Parse the command-line options.
|
// Parse the command-line options.
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
const char *optstring = "ha:c:o:";
|
const char *optstring = "ht:a:c:o:";
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"transport", required_argument, 0, 't'},
|
||||||
{"address", required_argument, 0, 'a'},
|
{"address", required_argument, 0, 'a'},
|
||||||
{"count", required_argument, 0, 'c'},
|
{"count", required_argument, 0, 'c'},
|
||||||
{"output", required_argument, 0, 'o'},
|
{"output", required_argument, 0, 'o'},
|
||||||
@ -117,6 +132,9 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
case 'h':
|
case 'h':
|
||||||
help = 1;
|
help = 1;
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
transport = dctool_transport_type (optarg);
|
||||||
|
break;
|
||||||
case 'a':
|
case 'a':
|
||||||
address = strtoul (optarg, NULL, 0);
|
address = strtoul (optarg, NULL, 0);
|
||||||
have_address = 1;
|
have_address = 1;
|
||||||
@ -142,6 +160,13 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
return EXIT_SUCCESS;
|
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.
|
// Check mandatory arguments.
|
||||||
if (!have_address || !have_count) {
|
if (!have_address || !have_count) {
|
||||||
message ("No memory address or byte count specified.\n");
|
message ("No memory address or byte count specified.\n");
|
||||||
@ -159,7 +184,7 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read data from the internal memory.
|
// Read data from the internal memory.
|
||||||
status = doread (context, descriptor, argv[0], address, buffer);
|
status = doread (context, descriptor, transport, argv[0], address, buffer);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||||
exitcode = EXIT_FAILURE;
|
exitcode = EXIT_FAILURE;
|
||||||
@ -185,11 +210,13 @@ const dctool_command_t dctool_read = {
|
|||||||
"Options:\n"
|
"Options:\n"
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
" -h, --help Show help message\n"
|
" -h, --help Show help message\n"
|
||||||
|
" -t, --transport <name> Transport type\n"
|
||||||
" -a, --address <address> Memory address\n"
|
" -a, --address <address> Memory address\n"
|
||||||
" -c, --count <count> Number of bytes\n"
|
" -c, --count <count> Number of bytes\n"
|
||||||
" -o, --output <filename> Output filename\n"
|
" -o, --output <filename> Output filename\n"
|
||||||
#else
|
#else
|
||||||
" -h Show help message\n"
|
" -h Show help message\n"
|
||||||
|
" -t <transport> Transport type\n"
|
||||||
" -a <address> Memory address\n"
|
" -a <address> Memory address\n"
|
||||||
" -c <count> Number of bytes\n"
|
" -c <count> Number of bytes\n"
|
||||||
" -o <filename> Output filename\n"
|
" -o <filename> Output filename\n"
|
||||||
|
|||||||
202
examples/dctool_scan.c
Normal file
202
examples/dctool_scan.c
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
/*
|
||||||
|
* 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
|
||||||
|
};
|
||||||
189
examples/dctool_timesync.c
Normal file
189
examples/dctool_timesync.c
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
/*
|
||||||
|
* 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,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -24,8 +24,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#endif
|
#endif
|
||||||
@ -39,17 +41,27 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
static dc_status_t
|
static dc_status_t
|
||||||
dowrite (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
dowrite (dc_context_t *context, dc_descriptor_t *descriptor, dc_transport_t transport, const char *devname, unsigned int address, dc_buffer_t *buffer)
|
||||||
{
|
{
|
||||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||||
|
dc_iostream_t *iostream = NULL;
|
||||||
dc_device_t *device = NULL;
|
dc_device_t *device = NULL;
|
||||||
|
|
||||||
// Open the device.
|
// Open the I/O stream.
|
||||||
message ("Opening the device (%s %s, %s).\n",
|
message ("Opening the I/O stream (%s, %s).\n",
|
||||||
dc_descriptor_get_vendor (descriptor),
|
dctool_transport_name (transport),
|
||||||
dc_descriptor_get_product (descriptor),
|
|
||||||
devname ? devname : "null");
|
devname ? devname : "null");
|
||||||
rc = dc_device_open (&device, context, descriptor, devname);
|
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) {
|
if (rc != DC_STATUS_SUCCESS) {
|
||||||
ERROR ("Error opening the device.");
|
ERROR ("Error opening the device.");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -82,6 +94,7 @@ dowrite (dc_context_t *context, dc_descriptor_t *descriptor, const char *devname
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
dc_device_close (device);
|
dc_device_close (device);
|
||||||
|
dc_iostream_close (iostream);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +104,7 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
int exitcode = EXIT_SUCCESS;
|
int exitcode = EXIT_SUCCESS;
|
||||||
dc_status_t status = DC_STATUS_SUCCESS;
|
dc_status_t status = DC_STATUS_SUCCESS;
|
||||||
dc_buffer_t *buffer = NULL;
|
dc_buffer_t *buffer = NULL;
|
||||||
|
dc_transport_t transport = dctool_transport_default (descriptor);
|
||||||
|
|
||||||
// Default option values.
|
// Default option values.
|
||||||
unsigned int help = 0;
|
unsigned int help = 0;
|
||||||
@ -100,10 +114,11 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
|
|
||||||
// Parse the command-line options.
|
// Parse the command-line options.
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
const char *optstring = "ha:c:i:";
|
const char *optstring = "ht:a:c:i:";
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"transport", required_argument, 0, 't'},
|
||||||
{"address", required_argument, 0, 'a'},
|
{"address", required_argument, 0, 'a'},
|
||||||
{"count", required_argument, 0, 'c'},
|
{"count", required_argument, 0, 'c'},
|
||||||
{"input", required_argument, 0, 'i'},
|
{"input", required_argument, 0, 'i'},
|
||||||
@ -117,6 +132,9 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
case 'h':
|
case 'h':
|
||||||
help = 1;
|
help = 1;
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
transport = dctool_transport_type (optarg);
|
||||||
|
break;
|
||||||
case 'a':
|
case 'a':
|
||||||
address = strtoul (optarg, NULL, 0);
|
address = strtoul (optarg, NULL, 0);
|
||||||
have_address = 1;
|
have_address = 1;
|
||||||
@ -142,6 +160,13 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
return EXIT_SUCCESS;
|
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.
|
// Check mandatory arguments.
|
||||||
if (!have_address) {
|
if (!have_address) {
|
||||||
message ("No memory address specified.\n");
|
message ("No memory address specified.\n");
|
||||||
@ -165,7 +190,7 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Write data to the internal memory.
|
// Write data to the internal memory.
|
||||||
status = dowrite (context, descriptor, argv[0], address, buffer);
|
status = dowrite (context, descriptor, transport, argv[0], address, buffer);
|
||||||
if (status != DC_STATUS_SUCCESS) {
|
if (status != DC_STATUS_SUCCESS) {
|
||||||
message ("ERROR: %s\n", dctool_errmsg (status));
|
message ("ERROR: %s\n", dctool_errmsg (status));
|
||||||
exitcode = EXIT_FAILURE;
|
exitcode = EXIT_FAILURE;
|
||||||
@ -188,11 +213,13 @@ const dctool_command_t dctool_write = {
|
|||||||
"Options:\n"
|
"Options:\n"
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
" -h, --help Show help message\n"
|
" -h, --help Show help message\n"
|
||||||
|
" -t, --transport <name> Transport type\n"
|
||||||
" -a, --address <address> Memory address\n"
|
" -a, --address <address> Memory address\n"
|
||||||
" -c, --count <count> Number of bytes\n"
|
" -c, --count <count> Number of bytes\n"
|
||||||
" -i, --input <filename> Input filename\n"
|
" -i, --input <filename> Input filename\n"
|
||||||
#else
|
#else
|
||||||
" -h Show help message\n"
|
" -h Show help message\n"
|
||||||
|
" -t <transport> Transport type\n"
|
||||||
" -a <address> Memory address\n"
|
" -a <address> Memory address\n"
|
||||||
" -c <count> Number of bytes\n"
|
" -c <count> Number of bytes\n"
|
||||||
" -i <filename> Input filename\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",
|
n = snprintf (buffer, size, "%04i%02i%02iT%02i%02i%02i",
|
||||||
datetime.year, datetime.month, datetime.day,
|
datetime.year, datetime.month, datetime.day,
|
||||||
datetime.hour, datetime.minute, datetime.second);
|
datetime.hour, datetime.minute, datetime.second);
|
||||||
if (n < 0 || n >= size)
|
if (n < 0 || (size_t) n >= size)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
@ -92,7 +92,7 @@ mktemplate_number (char *buffer, size_t size, unsigned int number)
|
|||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
n = snprintf (buffer, size, "%04u", number);
|
n = snprintf (buffer, size, "%04u", number);
|
||||||
if (n < 0 || n >= size)
|
if (n < 0 || (size_t) n >= size)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
|
|||||||
@ -90,7 +90,7 @@ convert_volume (double value, dctool_units_t units)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sample_cb (dc_sample_type_t type, dc_sample_value_t value, void *userdata)
|
sample_cb (dc_sample_type_t type, const dc_sample_value_t *value, void *userdata)
|
||||||
{
|
{
|
||||||
static const char *events[] = {
|
static const char *events[] = {
|
||||||
"none", "deco", "rbt", "ascent", "ceiling", "workload", "transmitter",
|
"none", "deco", "rbt", "ascent", "ceiling", "workload", "transmitter",
|
||||||
@ -104,64 +104,80 @@ sample_cb (dc_sample_type_t type, dc_sample_value_t value, void *userdata)
|
|||||||
|
|
||||||
sample_data_t *sampledata = (sample_data_t *) userdata;
|
sample_data_t *sampledata = (sample_data_t *) userdata;
|
||||||
|
|
||||||
|
unsigned int seconds = 0, milliseconds = 0;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DC_SAMPLE_TIME:
|
case DC_SAMPLE_TIME:
|
||||||
|
seconds = value->time / 1000;
|
||||||
|
milliseconds = value->time % 1000;
|
||||||
if (sampledata->nsamples++)
|
if (sampledata->nsamples++)
|
||||||
fprintf (sampledata->ostream, "</sample>\n");
|
fprintf (sampledata->ostream, "</sample>\n");
|
||||||
fprintf (sampledata->ostream, "<sample>\n");
|
fprintf (sampledata->ostream, "<sample>\n");
|
||||||
fprintf (sampledata->ostream, " <time>%02u:%02u</time>\n", value.time / 60, value.time % 60);
|
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);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_DEPTH:
|
case DC_SAMPLE_DEPTH:
|
||||||
fprintf (sampledata->ostream, " <depth>%.2f</depth>\n",
|
fprintf (sampledata->ostream, " <depth>%.2f</depth>\n",
|
||||||
convert_depth(value.depth, sampledata->units));
|
convert_depth(value->depth, sampledata->units));
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_PRESSURE:
|
case DC_SAMPLE_PRESSURE:
|
||||||
fprintf (sampledata->ostream, " <pressure tank=\"%u\">%.2f</pressure>\n",
|
fprintf (sampledata->ostream, " <pressure tank=\"%u\">%.2f</pressure>\n",
|
||||||
value.pressure.tank,
|
value->pressure.tank,
|
||||||
convert_pressure(value.pressure.value, sampledata->units));
|
convert_pressure(value->pressure.value, sampledata->units));
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_TEMPERATURE:
|
case DC_SAMPLE_TEMPERATURE:
|
||||||
fprintf (sampledata->ostream, " <temperature>%.2f</temperature>\n",
|
fprintf (sampledata->ostream, " <temperature>%.2f</temperature>\n",
|
||||||
convert_temperature(value.temperature, sampledata->units));
|
convert_temperature(value->temperature, sampledata->units));
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_EVENT:
|
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",
|
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;
|
break;
|
||||||
case DC_SAMPLE_RBT:
|
case DC_SAMPLE_RBT:
|
||||||
fprintf (sampledata->ostream, " <rbt>%u</rbt>\n", value.rbt);
|
fprintf (sampledata->ostream, " <rbt>%u</rbt>\n", value->rbt);
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_HEARTBEAT:
|
case DC_SAMPLE_HEARTBEAT:
|
||||||
fprintf (sampledata->ostream, " <heartbeat>%u</heartbeat>\n", value.heartbeat);
|
fprintf (sampledata->ostream, " <heartbeat>%u</heartbeat>\n", value->heartbeat);
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_BEARING:
|
case DC_SAMPLE_BEARING:
|
||||||
fprintf (sampledata->ostream, " <bearing>%u</bearing>\n", value.bearing);
|
fprintf (sampledata->ostream, " <bearing>%u</bearing>\n", value->bearing);
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_VENDOR:
|
case DC_SAMPLE_VENDOR:
|
||||||
fprintf (sampledata->ostream, " <vendor type=\"%u\" size=\"%u\">", value.vendor.type, value.vendor.size);
|
fprintf (sampledata->ostream, " <vendor type=\"%u\" size=\"%u\">", value->vendor.type, value->vendor.size);
|
||||||
for (unsigned int i = 0; i < value.vendor.size; ++i)
|
for (unsigned int i = 0; i < value->vendor.size; ++i)
|
||||||
fprintf (sampledata->ostream, "%02X", ((unsigned char *) value.vendor.data)[i]);
|
fprintf (sampledata->ostream, "%02X", ((const unsigned char *) value->vendor.data)[i]);
|
||||||
fprintf (sampledata->ostream, "</vendor>\n");
|
fprintf (sampledata->ostream, "</vendor>\n");
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_SETPOINT:
|
case DC_SAMPLE_SETPOINT:
|
||||||
fprintf (sampledata->ostream, " <setpoint>%.2f</setpoint>\n", value.setpoint);
|
fprintf (sampledata->ostream, " <setpoint>%.2f</setpoint>\n", value->setpoint);
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_PPO2:
|
case DC_SAMPLE_PPO2:
|
||||||
fprintf (sampledata->ostream, " <ppo2>%.2f</ppo2>\n", value.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);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_CNS:
|
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;
|
break;
|
||||||
case DC_SAMPLE_DECO:
|
case DC_SAMPLE_DECO:
|
||||||
fprintf (sampledata->ostream, " <deco time=\"%u\" depth=\"%.2f\">%s</deco>\n",
|
fprintf (sampledata->ostream, " <deco time=\"%u\" depth=\"%.2f\">%s</deco>\n",
|
||||||
value.deco.time,
|
value->deco.time,
|
||||||
convert_depth(value.deco.depth, sampledata->units),
|
convert_depth(value->deco.depth, sampledata->units),
|
||||||
decostop[value.deco.type]);
|
decostop[value->deco.type]);
|
||||||
|
if (value->deco.tts) {
|
||||||
|
fprintf (sampledata->ostream, " <tts>%u</tts>\n",
|
||||||
|
value->deco.tts);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DC_SAMPLE_GASMIX:
|
case DC_SAMPLE_GASMIX:
|
||||||
fprintf (sampledata->ostream, " <gasmix>%u</gasmix>\n", value.gasmix);
|
fprintf (sampledata->ostream, " <gasmix>%u</gasmix>\n", value->gasmix);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -230,9 +246,16 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf (output->ostream, "<datetime>%04i-%02i-%02i %02i:%02i:%02i</datetime>\n",
|
if (dt.timezone == DC_TIMEZONE_NONE) {
|
||||||
dt.year, dt.month, dt.day,
|
fprintf (output->ostream, "<datetime>%04i-%02i-%02i %02i:%02i:%02i</datetime>\n",
|
||||||
dt.hour, dt.minute, dt.second);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
// Parse the divetime.
|
// Parse the divetime.
|
||||||
message ("Parsing the divetime.\n");
|
message ("Parsing the divetime.\n");
|
||||||
@ -258,6 +281,20 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
fprintf (output->ostream, "<maxdepth>%.2f</maxdepth>\n",
|
fprintf (output->ostream, "<maxdepth>%.2f</maxdepth>\n",
|
||||||
convert_depth(maxdepth, output->units));
|
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.
|
// Parse the temperature.
|
||||||
message ("Parsing the temperature.\n");
|
message ("Parsing the temperature.\n");
|
||||||
for (unsigned int i = 0; i < 3; ++i) {
|
for (unsigned int i = 0; i < 3; ++i) {
|
||||||
@ -301,11 +338,19 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
"<gasmix>\n"
|
"<gasmix>\n"
|
||||||
" <he>%.1f</he>\n"
|
" <he>%.1f</he>\n"
|
||||||
" <o2>%.1f</o2>\n"
|
" <o2>%.1f</o2>\n"
|
||||||
" <n2>%.1f</n2>\n"
|
" <n2>%.1f</n2>\n",
|
||||||
"</gasmix>\n",
|
|
||||||
gasmix.helium * 100.0,
|
gasmix.helium * 100.0,
|
||||||
gasmix.oxygen * 100.0,
|
gasmix.oxygen * 100.0,
|
||||||
gasmix.nitrogen * 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.
|
// Parse the tanks.
|
||||||
@ -333,6 +378,12 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
" <gasmix>%u</gasmix>\n",
|
" <gasmix>%u</gasmix>\n",
|
||||||
tank.gasmix);
|
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) {
|
if (tank.type != DC_TANKVOLUME_NONE) {
|
||||||
fprintf (output->ostream,
|
fprintf (output->ostream,
|
||||||
" <type>%s</type>\n"
|
" <type>%s</type>\n"
|
||||||
@ -360,11 +411,35 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (status != DC_STATUS_UNSUPPORTED) {
|
if (status != DC_STATUS_UNSUPPORTED) {
|
||||||
const char *names[] = {"freedive", "gauge", "oc", "cc"};
|
const char *names[] = {"freedive", "gauge", "oc", "ccr", "scr"};
|
||||||
fprintf (output->ostream, "<divemode>%s</divemode>\n",
|
fprintf (output->ostream, "<divemode>%s</divemode>\n",
|
||||||
names[divemode]);
|
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.
|
// Parse the salinity.
|
||||||
message ("Parsing the salinity.\n");
|
message ("Parsing the salinity.\n");
|
||||||
dc_salinity_t salinity = {DC_WATER_FRESH, 0.0};
|
dc_salinity_t salinity = {DC_WATER_FRESH, 0.0};
|
||||||
@ -375,8 +450,14 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (status != DC_STATUS_UNSUPPORTED) {
|
if (status != DC_STATUS_UNSUPPORTED) {
|
||||||
fprintf (output->ostream, "<salinity type=\"%u\">%.1f</salinity>\n",
|
const char *names[] = {"fresh", "salt"};
|
||||||
salinity.type, salinity.density);
|
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]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the atmospheric pressure.
|
// Parse the atmospheric pressure.
|
||||||
|
|||||||
@ -26,6 +26,12 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define snprintf _snprintf
|
||||||
|
#define strcasecmp _stricmp
|
||||||
|
#define strncasecmp _strnicmp
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||||
#define FUNCTION __func__
|
#define FUNCTION __func__
|
||||||
#else
|
#else
|
||||||
|
|||||||
@ -6,54 +6,30 @@ libdivecomputer_HEADERS = \
|
|||||||
buffer.h \
|
buffer.h \
|
||||||
descriptor.h \
|
descriptor.h \
|
||||||
iterator.h \
|
iterator.h \
|
||||||
|
iostream.h \
|
||||||
|
ioctl.h \
|
||||||
|
serial.h \
|
||||||
|
bluetooth.h \
|
||||||
|
ble.h \
|
||||||
|
irda.h \
|
||||||
|
usb.h \
|
||||||
|
usbhid.h \
|
||||||
|
custom.h \
|
||||||
device.h \
|
device.h \
|
||||||
parser.h \
|
parser.h \
|
||||||
datetime.h \
|
datetime.h \
|
||||||
units.h \
|
units.h \
|
||||||
suunto.h \
|
|
||||||
suunto_solution.h \
|
|
||||||
suunto_eon.h \
|
suunto_eon.h \
|
||||||
suunto_eonsteel.h \
|
|
||||||
suunto_vyper.h \
|
|
||||||
suunto_vyper2.h \
|
suunto_vyper2.h \
|
||||||
suunto_d9.h \
|
suunto_d9.h \
|
||||||
reefnet.h \
|
|
||||||
reefnet_sensus.h \
|
reefnet_sensus.h \
|
||||||
reefnet_sensuspro.h \
|
reefnet_sensuspro.h \
|
||||||
reefnet_sensusultra.h \
|
reefnet_sensusultra.h \
|
||||||
uwatec.h \
|
|
||||||
uwatec_aladin.h \
|
|
||||||
uwatec_memomouse.h \
|
|
||||||
uwatec_smart.h \
|
|
||||||
uwatec_meridian.h \
|
|
||||||
oceanic.h \
|
|
||||||
oceanic_atom2.h \
|
oceanic_atom2.h \
|
||||||
oceanic_veo250.h \
|
oceanic_veo250.h \
|
||||||
oceanic_vtpro.h \
|
oceanic_vtpro.h \
|
||||||
mares.h \
|
|
||||||
mares_nemo.h \
|
|
||||||
mares_puck.h \
|
|
||||||
mares_darwin.h \
|
|
||||||
mares_iconhd.h \
|
|
||||||
hw.h \
|
|
||||||
hw_ostc.h \
|
hw_ostc.h \
|
||||||
hw_frog.h \
|
hw_frog.h \
|
||||||
hw_ostc3.h \
|
hw_ostc3.h \
|
||||||
cressi.h \
|
|
||||||
cressi_edy.h \
|
|
||||||
cressi_leonardo.h \
|
|
||||||
zeagle.h \
|
|
||||||
zeagle_n2ition3.h \
|
|
||||||
atomics.h \
|
|
||||||
atomics_cobalt.h \
|
atomics_cobalt.h \
|
||||||
shearwater.h \
|
divesystem_idive.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
|
|
||||||
|
|||||||
@ -19,10 +19,10 @@
|
|||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ATOMICS_COBALT_H
|
#ifndef DC_ATOMICS_COBALT_H
|
||||||
#define ATOMICS_COBALT_H
|
#define DC_ATOMICS_COBALT_H
|
||||||
|
|
||||||
#include "context.h"
|
#include "common.h"
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
|
||||||
@ -30,22 +30,13 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
dc_status_t
|
|
||||||
atomics_cobalt_device_open (dc_device_t **device, dc_context_t *context);
|
|
||||||
|
|
||||||
dc_status_t
|
dc_status_t
|
||||||
atomics_cobalt_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
atomics_cobalt_device_version (dc_device_t *device, unsigned char data[], unsigned int size);
|
||||||
|
|
||||||
dc_status_t
|
dc_status_t
|
||||||
atomics_cobalt_device_set_simulation (dc_device_t *device, unsigned int simulation);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
#endif /* ATOMICS_COBALT_H */
|
#endif /* DC_ATOMICS_COBALT_H */
|
||||||
|
|||||||
54
include/libdivecomputer/ble.h
Normal file
54
include/libdivecomputer/ble.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* 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 */
|
||||||
135
include/libdivecomputer/bluetooth.h
Normal file
135
include/libdivecomputer/bluetooth.h
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
/*
|
||||||
|
* 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,6 +51,9 @@ dc_buffer_append (dc_buffer_t *buffer, const unsigned char data[], size_t size);
|
|||||||
int
|
int
|
||||||
dc_buffer_prepend (dc_buffer_t *buffer, const unsigned char data[], size_t size);
|
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
|
int
|
||||||
dc_buffer_slice (dc_buffer_t *buffer, size_t offset, size_t size);
|
dc_buffer_slice (dc_buffer_t *buffer, size_t offset, size_t size);
|
||||||
|
|
||||||
|
|||||||
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 CITIZEN_H
|
|
||||||
#define CITIZEN_H
|
|
||||||
|
|
||||||
#include "citizen_aqualand.h"
|
|
||||||
|
|
||||||
#endif /* CITIZEN_H */
|
|
||||||
@ -41,6 +41,16 @@ typedef enum dc_status_t {
|
|||||||
DC_STATUS_CANCELLED = -10
|
DC_STATUS_CANCELLED = -10
|
||||||
} dc_status_t;
|
} 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_t;
|
||||||
|
|
||||||
typedef enum dc_family_t {
|
typedef enum dc_family_t {
|
||||||
DC_FAMILY_NULL = 0,
|
DC_FAMILY_NULL = 0,
|
||||||
/* Suunto */
|
/* Suunto */
|
||||||
@ -58,11 +68,13 @@ typedef enum dc_family_t {
|
|||||||
DC_FAMILY_UWATEC_ALADIN = (3 << 16),
|
DC_FAMILY_UWATEC_ALADIN = (3 << 16),
|
||||||
DC_FAMILY_UWATEC_MEMOMOUSE,
|
DC_FAMILY_UWATEC_MEMOMOUSE,
|
||||||
DC_FAMILY_UWATEC_SMART,
|
DC_FAMILY_UWATEC_SMART,
|
||||||
DC_FAMILY_UWATEC_MERIDIAN,
|
DC_FAMILY_UWATEC_MERIDIAN, /* Deprecated: integrated into the Uwatec Smart family. */
|
||||||
|
DC_FAMILY_UWATEC_G2, /* Deprecated: integrated into the Uwatec Smart family. */
|
||||||
/* Oceanic */
|
/* Oceanic */
|
||||||
DC_FAMILY_OCEANIC_VTPRO = (4 << 16),
|
DC_FAMILY_OCEANIC_VTPRO = (4 << 16),
|
||||||
DC_FAMILY_OCEANIC_VEO250,
|
DC_FAMILY_OCEANIC_VEO250,
|
||||||
DC_FAMILY_OCEANIC_ATOM2,
|
DC_FAMILY_OCEANIC_ATOM2,
|
||||||
|
DC_FAMILY_PELAGIC_I330R,
|
||||||
/* Mares */
|
/* Mares */
|
||||||
DC_FAMILY_MARES_NEMO = (5 << 16),
|
DC_FAMILY_MARES_NEMO = (5 << 16),
|
||||||
DC_FAMILY_MARES_PUCK,
|
DC_FAMILY_MARES_PUCK,
|
||||||
@ -75,6 +87,7 @@ typedef enum dc_family_t {
|
|||||||
/* Cressi */
|
/* Cressi */
|
||||||
DC_FAMILY_CRESSI_EDY = (7 << 16),
|
DC_FAMILY_CRESSI_EDY = (7 << 16),
|
||||||
DC_FAMILY_CRESSI_LEONARDO,
|
DC_FAMILY_CRESSI_LEONARDO,
|
||||||
|
DC_FAMILY_CRESSI_GOA,
|
||||||
/* Zeagle */
|
/* Zeagle */
|
||||||
DC_FAMILY_ZEAGLE_N2ITION3 = (8 << 16),
|
DC_FAMILY_ZEAGLE_N2ITION3 = (8 << 16),
|
||||||
/* Atomic Aquatics */
|
/* Atomic Aquatics */
|
||||||
@ -90,6 +103,24 @@ typedef enum dc_family_t {
|
|||||||
DC_FAMILY_DIVESYSTEM_IDIVE = (13 << 16),
|
DC_FAMILY_DIVESYSTEM_IDIVE = (13 << 16),
|
||||||
/* Cochran */
|
/* Cochran */
|
||||||
DC_FAMILY_COCHRAN_COMMANDER = (14 << 16),
|
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),
|
||||||
} dc_family_t;
|
} dc_family_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@ -53,6 +53,9 @@ dc_context_set_loglevel (dc_context_t *context, dc_loglevel_t loglevel);
|
|||||||
dc_status_t
|
dc_status_t
|
||||||
dc_context_set_logfunc (dc_context_t *context, dc_logfunc_t logfunc, void *userdata);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|||||||
67
include/libdivecomputer/custom.h
Normal file
67
include/libdivecomputer/custom.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* 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 */
|
||||||
@ -22,10 +22,14 @@
|
|||||||
#ifndef DC_DATETIME_H
|
#ifndef DC_DATETIME_H
|
||||||
#define DC_DATETIME_H
|
#define DC_DATETIME_H
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#define DC_TIMEZONE_NONE INT_MIN
|
||||||
|
|
||||||
#if defined (_WIN32) && !defined (__GNUC__)
|
#if defined (_WIN32) && !defined (__GNUC__)
|
||||||
typedef __int64 dc_ticks_t;
|
typedef __int64 dc_ticks_t;
|
||||||
#else
|
#else
|
||||||
@ -39,6 +43,7 @@ typedef struct dc_datetime_t {
|
|||||||
int hour;
|
int hour;
|
||||||
int minute;
|
int minute;
|
||||||
int second;
|
int second;
|
||||||
|
int timezone;
|
||||||
} dc_datetime_t;
|
} dc_datetime_t;
|
||||||
|
|
||||||
dc_ticks_t
|
dc_ticks_t
|
||||||
|
|||||||
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