9586 Commits

Author SHA1 Message Date
Anton Tananaev
6f30f48984 Check permissions for device image upload 2026-04-28 17:35:44 -07:00
Anton Tananaev
bf0dbb7562 Use device id for streams 2026-04-28 17:27:53 -07:00
Anton Tananaev
a0e2d0ab6e Cleanup GT06 test cases 2026-04-26 14:58:29 -07:00
Ivan F. Martinez
807492c482 correct battery voltage decoding for gt06 nt devices and add more device models (#5862)
* add battery voltage for NT20 protocol decoding

* add more models and use only battery voltage for NT devices

* leave only NT20 tests
2026-04-26 14:55:43 -07:00
Anton Tananaev
e8bc5da983 Reuse alarm variable 2026-04-25 19:05:02 -07:00
Mutasim Issa
0a09d62e8d Add SeeWorld W15L support to JT808 protocol (#5848)
- Decode 0xEB sub-extension 0x0089 (extended alarm status):
  bit 0 -> ALARM_POWER_OFF, bit 12 -> ALARM_REMOVING (active-low).
- Decode 0xEB sub-extension 0x00C5 (extended alarm status 2):
  bit 6 -> ALARM_VIBRATION (active-low), bits 23-24 -> KEY_MOTION.
- Handle terminal logout 0x0003 with platform general response 0x8001.
- Encoder: W15L engine stop/resume via 0x8105 with bytes 0x64/0x65,
  alongside the existing VL300 branch.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-25 18:59:03 -07:00
Anton Tananaev
8febe0c7a1 Support H.265 video streams 2026-04-25 16:52:23 -07:00
Anton Tananaev
a9d0c7f17b Remove variable 2026-04-24 22:23:44 -07:00
Ross Golder
5ff93624ef Fix NPE in OpenID login when user has no groups (#5861)
* Fix NPE in OpenID login when user has no groups

* Fix line length in OpenID authorization check
2026-04-24 22:22:00 -07:00
Anton Tananaev
16099380b3 Rename Huabao to JT808 protocol 2026-04-23 20:40:52 -07:00
Anton Tananaev
0db6fadc5b Clear stream on disconnect 2026-04-20 21:46:22 -07:00
Anton Tananaev
7aa708621d Return empty playlist 2026-04-20 21:34:50 -07:00
Anton Tananaev
ef2ea05611 Fix video streaming issues 2026-04-19 11:57:29 -07:00
Anton Tananaev
012c5cb7da Add log throttling for video 2026-04-19 11:44:01 -07:00
Anton Tananaev
747e26c3f8 Avoid making JT1078 active device 2026-04-19 11:33:49 -07:00
Anton Tananaev
2a0dec0279 Default to first channel 2026-04-19 11:19:12 -07:00
Anton Tananaev
aeb8c52e4c Consolidate device id handling 2026-04-19 11:08:51 -07:00
Anton Tananaev
84125083fe Fix huabao device encoding 2026-04-19 11:01:11 -07:00
Anton Tananaev
45ee00a7a7 Fix lint error 2026-04-19 11:00:31 -07:00
Anton Tananaev
d8e78459d2 Propagate command errors 2026-04-19 10:53:27 -07:00
Anton Tananaev
bb23280477 Improve huabao command 2026-04-19 10:28:54 -07:00
Anton Tananaev
f574faabe0 Improve latest position query 2026-04-18 07:22:20 -07:00
Anton Tananaev
ca1766b387 Improve query performance 2026-04-18 07:17:17 -07:00
Anton Tananaev
0ef80191aa Improve query performance 2026-04-18 07:11:43 -07:00
Joaquim Cardeira
516ebb2965 Add OBD odometer for Teltonika FMB003 (#5851)
* Add OBD odometer for Teltonika FMB003

* inline

* Style

* Trailing spaces

* Update src/main/java/org/traccar/protocol/TeltonikaProtocolDecoder.java

Co-authored-by: Anton Tananaev <anton.tananaev@gmail.com>

* Style

---------

Co-authored-by: Anton Tananaev <anton.tananaev@gmail.com>
2026-04-16 11:55:48 -07:00
Anton Tananaev
ade034b3e3 Cleanup Arnavi protocol 2026-04-15 07:46:42 -07:00
NL1ghtman
f20b2e68ab Refactor ArnaviBinaryProtocolDecoder constants and methods (#5795)
* Refactor ArnaviBinaryProtocolDecoder constants and methods

1. sendResponse для HEADER v2 — сломан полностью
Код делал time.writeBytes(time) — писал буфер сам в себя. В результате ответ на HEADER2 отправлялся пустым, без unixtime. Устройство не получало подтверждения и начинало слать HEADER повторно - координаты вообще не поступали.
2. TAG 5 — ошибка приоритета операторов в Java
satellites & 0x0F + (satellites >> 4) & 0x0F из-за приоритета + над & считало неверно. Нужны скобки: (satellites & 0x0F) + ((satellites >> 4) & 0x0F).
3. TAG 9 — перезапись KEY_POWER
TAG 9 перезаписывал KEY_POWER, уже установленный TAG 1. Теперь TAG 9 пишет только KEY_STATUS.
4. Цикл decode() — читал 0x5D как тип записи
После последнего PACKET байт 0x5D (конец PACKAGE) читался как тип пакета и возвращал null. Теперь цикл проверяет конечный маркер.

* Refactor position keys for CAN data handling

* Rename gas pedal variable to throttle

* Refactor ArnaviBinaryProtocolDecoder for clarity

Переписана проверка координат на корректность, теперь setValid определяет тег 0x05
Добавлены теги для Device Status и CAN security. 
Исправлена обработка для KEY_POWER и KEY_BATTERY
Добавлено условие для LLS, для фильтрации "шума". Температура LLS будет записывать только при наличии данных по уровню топлива. Исключен LLS0, в большинстве случаев он не используется.

* Clean up commented code in ArnaviBinaryProtocolDecoder

Removed commented-out code for time buffer handling.

* Change mode reading from int to unsigned byte for tag 0x06

* Fix bitwise operation for tempRaw calculation

* Refactor ArnaviBinaryProtocolDecoder for clarity

1. Validation for zero coordinates was removed
2. Fixed discrete inputs handling. 
3. Updated tag numbering to numeric per documentation.

* Remove all comments

* removed trailing spaces

* Refactor ArnaviBinaryProtocolDecoder to improve readability and maintainability

* Refactor network setting in ArnaviBinaryProtocolDecoder for improved parameter order and clarity

* Refactor ArnaviBinaryProtocolDecoder to simplify condition for RECORD_DATA processing

* Fix critical bug in case 6 mode=0x01: incorrect 15-byte buffer shift

* Update device status and discrete input handling to align with the standard custom attributes approach

* Added unit tests for HEADER_3 and new tags. Added a check for mobile network data

* Removed the test that wasn't testing anything

* removed ByteBuf import

* The testFullTagsAttributes test has been extended

* format fix

* fix physicalInputs numbering

* Decoder - removed nested blocks
DecoderTest - updated to be consistent with the other tests

* Decoder - removed nested blocks

* Removed unnecessary reformatting from sendResponse,  removed unnecessary verifyAttribute from DecoderTest

* format fix

* format fix

* format fix
2026-04-15 07:20:06 -07:00
Anton Tananaev
24231ad245 Add video commands 2026-04-14 20:39:11 -07:00
Anton Tananaev
bc15cfec6e Fix flespi power source 2026-04-13 17:16:24 -07:00
Anton Tananaev
60f20a05dc Add JT/T 1078 video streaming 2026-04-12 11:06:58 -07:00
Anton Tananaev
b3443ec8d4 Add more CRC32 algorithms 2026-04-12 10:54:55 -07:00
Anton Tananaev
8fec46eb32 Support per device filter config 2026-04-11 07:44:28 -07:00
Anton Tananaev
a8fdd2ba5a Use list for filter types 2026-04-11 07:15:15 -07:00
Anton Tananaev
9b4ea53a00 Remove preceding filtering option 2026-04-11 07:13:05 -07:00
Anton Tananaev
c0c1fa4323 Fix T711L decoding error 2026-04-03 20:48:13 -07:00
Anton Tananaev
d07f196433 Unify upper case check 2026-03-31 17:41:01 -07:00
Joaquim Cardeira
650d8869c1 Add support for AOVX VL100 model (#5837)
* Add support for VL100 model in Gt06ProtocolDecoder

* Fix typo in model check for MSG_GPS_LBS_2

* Rename to modelNT
2026-03-31 17:40:01 -07:00
Anton Tananaev
0a88cf3f9c Add JT1078 frame decoder 2026-03-30 14:50:18 -07:00
Anton Tananaev
82754e8899 Decode JM-LL01 JM-LL02 CT10 alarms 2026-03-30 12:42:42 -07:00
Anton Tananaev
b7b80e1383 Decode Topin A50 SOS alarm 2026-03-28 07:16:19 -07:00
Anton Tananaev
83a14ed25e Migrate remaining string keys 2026-03-26 07:41:17 -07:00
Joaquim Cardeira
c743f3edfb GT06 NT20 protocol correction, hours should be long and odometer shou… (#5834)
* GT06 NT20 protocol correction, hours should be long and odometer should be read as unsigned

* Update src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java

Co-authored-by: Anton Tananaev <anton.tananaev@gmail.com>

---------

Co-authored-by: Anton Tananaev <anton.tananaev@gmail.com>
2026-03-24 11:26:44 -07:00
Anton Tananaev
273e6fb6ee Support group sharing 2026-03-23 21:15:26 -07:00
Igor
bd631d5e28 Support proxy configuration for Telegram notifications (#5831)
* Support proxy configuration for Telegram notifications

* Drain Telegram proxy response stream

* Use HTTP proxy for Telegram notifications

* Fix Telegram proxy configuration formatting

* Use proxy URL for Telegram notifications
2026-03-23 10:18:13 -07:00
Anton Tananaev
fd2e588745 Decode eview side buttons 2026-03-20 07:38:23 -07:00
Anton Tananaev
9c31a03b37 Fix OpenID admin reset (fix #5829) 2026-03-19 17:51:00 -07:00
Anton Tananaev
cc1aa3b4c5 Remove unnecessary comment 2026-03-14 07:48:23 -07:00
Chris Tucker
890d0f9ab5 Xexun2 Protocol Correction (#5818)
* Fix Xexun2 negative longitude (DDMM.MMMM truncate toward zero)

* Add test for Xexun2 negative longitude (DDMM.MMMM) conversion

- Add testConvertCoordinateNegativeLongitude() asserting correct conversion
  for negative longitude (-121.64531°), reference latitude (37.09772°),
  and positive longitude (121.64531°).
- Make convertCoordinate() package-private so the test can call it.

Made-with: Cursor

* Fix Xexun2 HEX test: correct lon/lat float bytes and checksum

- Use IEEE 754 big-endian bytes for -12138.7186 (lon) and 3705.8632 (lat)
- Assert only lat/lon/valid (no fix time) for decoder timestamp independence
- Recompute payload checksum for PR #5818

Made-with: Cursor

* Use position() helper for Xexun2 negative-longitude test; match decoded fix time

Made-with: Cursor
2026-03-14 07:47:41 -07:00
Anton Tananaev
d2c2781932 Use database for new trip logic 2026-03-13 21:21:56 -07:00
Anton Tananaev
a2c2c4e2ed Support multiple beacons 2026-03-13 07:25:04 -07:00