Changes for page Методы API для работы с ГЛОНАССSoft
Last modified by Андрей Калиновский on 2025/01/28 12:59
<
>
edited by Андрей Калиновский
on 2024/11/19 14:18
on 2024/11/19 14:18
edited by Андрей Калиновский
on 2024/07/19 13:24
on 2024/07/19 13:24
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -14,20 +14,11 @@ 14 14 15 15 Пример: X-Auth: 34f4919a-099b-4b7d-8aa1-f478ec2062de. 16 16 17 -(% style="color:#000000" %)− (%%)При **редактировании** любойзаписи (пользователь, объект и т.д)необходимо передавать все параметры записив теле запроса! Те параметры, значения которых не будут переданы - будут стерты!17 +(% style="color:#000000" %)− (%%)При **редактировании** необходимо передавать все параметры пользователя в теле запроса! Те параметры, значения которых не будут переданы - будут стерты! 18 18 19 - 20 -(% style="color:#000000; font-size:16px" %)**Рекомендации** 21 - 22 -- Для запросов по API рекомендуется наделить пользователя ролью **Администратора партнера**, в противном случае при выполнении некоторых запросов у него не будет хватать прав (чаще всего сталкиваются с отсутствием прав при запросах сообщений от терминала за период). 23 - 24 24 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Авторизация**(%%) = 25 25 26 -(% class="box warningmessage" id="H41043244243E44043843743044643844F" %) 27 -((( 28 -(% style="color:#000000; font-size:16px" %)**Авторизация**(%%) 29 -(% style="color:#000000; font-size:16px" %)Адрес сервера всегда следует указывать именно тот, по которому происходит вход в СМТ (https:~/~/hosting.glonasssoft.ru/ , [[https:~~/~~/regions.glonasssoft.ru/>>https://regions.glonasssoft.ru/]] или другие) 30 -))) 21 +== (% style="color:#000000; font-size:16px" %)**Авторизация**(%%) == 31 31 32 32 (% class="box successmessage" %) 33 33 ((( ... ... @@ -53,8 +53,12 @@ 53 53 54 54 (% lang="en-US" %) 55 55 (% style="color:#000000" %){ 56 - "AuthId": "(%%)93c6jg79-b88b-4a35-a2d0-70dg9jc2898b(% style="color:#000000" %)" , ~/~/ токен авторизации 57 - "User": "testuser" , ~/~/ имя пользователя(%%) 47 + 48 +(% lang="en-US" %) 49 +(% style="color:#000000" %) "AuthId": "(%%)93c6jg79-b88b-4a35-a2d0-70dg9jc2898b(% style="color:#000000" %)" , ~/~/ токен авторизации 50 + "User": "testuser" , ~/~/ имя пользователя 51 + 52 +(% lang="en-US" %) 58 58 } 59 59 60 60 **Примечание: **Время жизни токена авторизации задается в настройках пользователя, там есть параметр длительность сессии. При каждом запросе токен пролонгируется. ... ... @@ -234,6 +234,7 @@ 234 234 "bankKS": "string" ~/~/ корр. счёт 235 235 } 236 236 232 + 237 237 Ответ: 238 238 239 239 { ... ... @@ -427,6 +427,7 @@ 427 427 ], 428 428 "language": 0 ~/~/ Язык интерфейса пользователя 1 - Русский, 2 - Английский, 3 - Азербайджанский 429 429 } 426 + 430 430 { 431 431 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 432 432 "lastName": "string", ... ... @@ -440,8 +440,12 @@ 440 440 441 441 (% style="text-align:left" %) 442 442 (% style="color:#000000; font-weight:normal" %)Ответ: 443 -{ 444 - "id": "" , ~/~/ ID пользователя 440 + 441 +(% style="text-align:left" %) 442 +(% style="color:#000000; font-weight:normal" %){ 443 + 444 +(% style="text-align:left" %) 445 +(% style="color:#000000; font-weight:normal" %) "id": "" , ~/~/ ID пользователя 445 445 "lastName": "" , ~/~/ Фамилия , 446 446 "firstName": "" , ~/~/ Имя 447 447 "position": "" , ~/~/ Должность ... ... @@ -458,9 +458,11 @@ 458 458 "kind": "" , ~/~/ тип аутентификации 459 459 "target": "" , ~/~/ в случае аутентификации по email - email-адрес 460 460 "groups": (% style="color:#000000" %)["", ""] (% style="color:#000000; font-weight:normal" %), ~/~/ роли пользователя, перечислены названия групп пользователя 461 -} 462 462 463 +(% style="text-align:left" %) 464 +(% style="color:#000000; font-weight:normal" %)} 463 463 466 + 464 464 == (% style="color:#000000; font-size:16px" %)**Получение списка пользователей**(%%) == 465 465 466 466 (% class="box infomessage" %) ... ... @@ -480,16 +480,19 @@ 480 480 481 481 (% style="color:#000000" %)Параметры в теле запроса (JSON): 482 482 483 -(% style="color:#000000" %){(%%) 486 +(% style="color:#000000" %){ 487 + 484 484 "parentId": "375a1f06-c384-43f8-8562-1c3d79a32303", ~/~/ GUID агента, для которого надо получить данные, null - для текущего агента 485 485 "userId": "11111111-c384-43f8-8562-1c3d79a32303", ~/~/ ID пользователя, по которому фильтруется, null - неважно 486 486 "login": "qqqqqq", ~/~/ Логин пользователя, по которому фильтруется, null - неважно 487 487 "email": "eee", ~/~/ Email пользователя, по которому фильтруется, null - неважно 492 + 488 488 (% style="color:#000000" %)} 489 489 490 490 (% style="color:#000000" %)Ответ: 491 491 492 492 (% style="color:#000000" %){ (%%) 498 + 493 493 "id": "" , ~/~/ идентификатор пользователя 494 494 "lastName": "" , ~/~/ фамилия 495 495 "firstName": "" , ~/~/ имя ... ... @@ -503,6 +503,7 @@ 503 503 "sessionDuration":"", ~/~/ длительность сессии в минутах 504 504 "status": "1", ~/~/ статус пользователя 505 505 "lastLogged": "", ~/~/ дата/время последней авторизации 512 + 506 506 (% style="color:#000000" %)} 507 507 508 508 == (% style="color:#000000; font-size:16px" %)**Получение информации о пользователе**(%%) == ... ... @@ -576,8 +576,10 @@ 576 576 (% lang="ru-RU" style="color:#000000; font-weight:normal" %)Параметры в теле запроса (JSON): 577 577 578 578 (% lang="en-US" style="text-align:left" %) 579 -(% lang="ru-RU" style="color:#000000; font-weight:normal" %){ 580 - "id": "" , ~/~/ ID пользователя 586 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %){ 587 + 588 +(% lang="en-US" style="text-align:left" %) 589 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %) "id": "" , ~/~/ ID пользователя 581 581 "lastName": "" , ~/~/ фамилия 582 582 "firstName": "" , ~/~/ имя 583 583 "position": "" , ~/~/ должность ... ... @@ -599,7 +599,9 @@ 599 599 "target": "string" ~/~/ Адрес электронной почты двухэтапной аутентификации 600 600 }, 601 601 "isDisabledMobile": false, ~/~/ Запретить использовать мобильное приложение, true - включен, false - отключен 602 - "groups": "" , ~/~/ группы пользователя, «user» названия группы пользователя(%%) 611 + "groups": "" , ~/~/ группы пользователя, «user» названия группы пользователя 612 + 613 +(% lang="en-US" style="text-align:left" %) 603 603 (% lang="ru-RU" style="color:#000000; font-weight:normal" %)__}__ 604 604 605 605 (% lang="en-US" style="text-align:left" %) ... ... @@ -606,8 +606,10 @@ 606 606 (% lang="ru-RU" style="color:#000000; font-weight:normal" %)//Ответ~:// 607 607 608 608 (% lang="en-US" style="text-align:left" %) 609 -(% lang="ru-RU" style="color:#000000; font-weight:normal" %){ 610 - "id": "" , ~/~/ идентификатор пользователя 620 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %){ 621 + 622 +(% lang="en-US" style="text-align:left" %) 623 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %) "id": "" , ~/~/ идентификатор пользователя 611 611 "lastName": "" , ~/~/ фамилия 612 612 "firstName": "" , ~/~/ имя 613 613 "position": "" , ~/~/ должность ... ... @@ -628,8 +628,10 @@ 628 628 "isDisabledMobile": false, ~/~/ Запретить использовать мобильное приложение, true - включен, false - отключен 629 629 "target": "" , ~/~/ в случае аутентификации по email - email-адрес 630 630 "groups": "" , ~/~/ группы пользователя, «user» названия группы пользователя 631 -} 632 632 645 +(% lang="en-US" style="text-align:left" %) 646 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %)} 647 + 633 633 == (% style="color:#000000; font-size:16px" %)**Изменение статуса пользователя**(%%) == 634 634 635 635 (% class="box warningmessage" %) ... ... @@ -649,10 +649,12 @@ 649 649 650 650 (% style="color:#000000" %)Параметры в теле запроса (JSON): 651 651 652 -(% style="color:#000000" %){(%%) 667 +(% style="color:#000000" %){ 668 + 653 653 "status": "" , ~/~/ статус пользователя (0 - новый, 1 - подтверждён, 2 - активен, 3 - уточнить, 4 - блокирован) 654 654 "description": "" , ~/~/ описание 655 655 "data": "" , ~/~/ данные, связанные со сменой статуса 672 + 656 656 (% style="color:#000000" %)} 657 657 658 658 (% style="text-align:left" %) ... ... @@ -674,7 +674,7 @@ 674 674 (% style="color:#000000" %)В теле запроса перечисляете массив id пользователей (JSON): 675 675 676 676 [ 677 - "8ed730d3-c61c-4c3a-ae4f-f41d9e710abc", 694 + "8ed730d3-c61c-4c3a-ae4f-f41d9e710abc", 678 678 "415f9ea3-8bc0-4e87-8d78-0852b0c0a4f1" 679 679 ] 680 680 ... ... @@ -980,7 +980,7 @@ 980 980 981 981 Ответ: В случае успеха **Success 200** 982 982 983 -= (% style="color:#000000; font-size:18.6667px" %)Раздел: **Транспортные средства (объекты)**(%%) =1000 += (% style="color:#000000; font-size:18.6667px" %)Раздел: **Транспортные средства**(%%) = 984 984 985 985 == (% style="color:#000000; font-size:16px" %)**Получение информации об объекте**(%%) == 986 986 ... ... @@ -1016,15 +1016,19 @@ 1016 1016 "deviceTypeName": "", ~/~/ Название типа устройства 1017 1017 "sim1": "", ~/~/ Номер SIM1 1018 1018 "sim2": "", ~/~/ Номер SIM2 1036 + 1019 1019 "parentId": "", ~/~/ ID клиента-родителя 1020 1020 "parentName": "", ~/~/ Наименование клиента-родителя 1021 1021 "modelId": "", ~/~/ ID модели объекта 1022 1022 "modelName": "", ~/~/ Имя модели объекта 1041 + 1023 1023 "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID подразделения 1024 1024 "unitName": "string", ~/~/ Наименование подразделения 1025 1025 "status": 0, ~/~/ Статус объекта 1045 + 1026 1026 "createdAt": "", ~/~/ Дата создания объекта 1027 1027 }, 1048 + 1028 1028 "customFields": [ ~/~/ Произвольные поля 1029 1029 { 1030 1030 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID поля ... ... @@ -1047,7 +1047,8 @@ 1047 1047 "consumptionPerHourSeasonalBegin": "" , ~/~/ День/месяц начала работы сезонной нормы расхода на моточас 1048 1048 "consumptionPerHourSeasonalEnd": "" , ~/~/ День/месяц окончания работы сезонной нормы расхода на моточас 1049 1049 "consumptionIdleSeasonalBegin": "" , ~/~/ День/месяц начала работы сезонной нормы расхода на х/х 1050 - "consumptionIdleSeasonalEnd": "" , ~/~/ День/месяц окончания работы сезонной нормы расхода на х/х 1071 + "consumptionIdleSeasonalEnd": "" , ~/~/ День/месяц окончания работы сезонной нормы расхода на х/х 1072 + 1051 1051 "mileageCalcMethod": 0, ~/~/ Метод расчета пробега, 0 - gps, 1 - датчик зажигания 1052 1052 "mileageCoeff": 0, ~/~/ коэффициент пробега 1053 1053 "locationByCellId": true, ~/~/ определение местоположения по данным LBS, true - активна, false - не активна ... ... @@ -1077,6 +1077,7 @@ 1077 1077 "retries": 0 ~/~/ Количество попыток 1078 1078 } 1079 1079 ], 1102 + 1080 1080 "sensors": [ ~/~/ Датчики 1081 1081 { 1082 1082 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID датчика ... ... @@ -1117,19 +1117,31 @@ 1117 1117 }, 1118 1118 1119 1119 ~/~/ Характерные для произвольного: 1143 + 1120 1120 ~/~/ "EventsEnabled": "off", ~/~/ Фиксировать события работы: on, off 1145 + 1121 1121 ~/~/ "EventsTemplateName": "Работа Произвольный", ~/~/ Наименование события работы 1147 + 1122 1122 ~/~/ "EventsCountEnabled": "off", ~/~/ Фиксировать количество срабатываний: on, off 1149 + 1123 1123 ~/~/ "EventsCountTemplateName": "Количество срабатываний Произвольный", ~/~/Наименование ~/~/события количества срабатываний 1151 + 1124 1124 ~/~/ "MapDisplayEnabled": "off", ~/~/ Отображать на карте: on, off 1153 + 1125 1125 ~/~/ "ChartDisplayEnabled": "off", ~/~/ Отображать на графике объекта: on, off 1155 + 1126 1126 ~/~/ "PayloadChartDisplayEnabled": "off", ~/~/ Отображать на графике полезной нагрузки: on, off 1157 + 1127 1127 ~/~/ "DrawType": ~/~/ тип отрисовки line, bar (Линия, Область) 1159 + 1128 1128 ~/~/ Характерные для таблицы тарировки Вкл./Выкл.: 1161 + 1129 1129 ~/~/ "ValueOn": "Вкл.", 1163 + 1130 1130 ~/~/ "ValueOff": "Выкл." 1131 1131 "summaryMaxValue": 0 ~/~/ Макс. значение 1132 1132 } 1167 + 1133 1133 "drivers": [ ~/~/ Водители 1134 1134 { 1135 1135 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ... ... @@ -1138,6 +1138,7 @@ 1138 1138 "isDefault": true ~/~/ По умолчанию 1139 1139 } 1140 1140 ], 1176 + 1141 1141 "inspectionTasks": [ ~/~/ Задания на тех. обслуживание 1142 1142 { 1143 1143 "id": "", ~/~/ ID задания ... ... @@ -1154,7 +1154,8 @@ 1154 1154 "maxQuantity": "" ~/~/ Сколько раз выполнить задание (null - однократно) 1155 1155 } 1156 1156 ], 1157 -"statusHistory": [ ~/~/ История статусов 1193 + 1194 + "statusHistory": [ ~/~/ История статусов 1158 1158 { 1159 1159 "status": 0, 1160 1160 "date": "2023-05-22T09:57:39.562Z", ... ... @@ -1162,6 +1162,7 @@ 1162 1162 "additionalInfo": "string" 1163 1163 } 1164 1164 ] 1202 + 1165 1165 } 1166 1166 ))) 1167 1167 ... ... @@ -1171,73 +1171,6 @@ 1171 1171 (% style="text-align:left" %) 1172 1172 0 - «Блокировка» 1 - «Активен», 2 - «Отменен», 3 - «Оборудован», 4 - «Диагностика», 5 - «Сервис», 6 - «Демонтаж», 7 - «Монтаж», 8 - «Дозаказ», 9 - «Обслужен», 10 - «Списан», 11 - «Неисправен», 12 - «Проверен», 13 - «Не эксплуатируется». 1173 1173 1174 - 1175 -== **Отправить команду на терминал** == 1176 - 1177 -(% class="box successmessage" %) 1178 -((( 1179 -(% lang="en-US" %)**POST **(%%)**/api/v3/Vehicles/cmd/create** 1180 -))) 1181 - 1182 -Команда для отправки на тс. 1183 - 1184 -{ 1185 -"id": "", ~/~/идентификатор произвольного поля 1186 -"command": "", ~/~/ Текст команды 1187 -"retries": "", ~/~/ Количество попыток 1188 -"idTemplate": "" ~/~/ ID шаблона команды 1189 -} 1190 - 1191 - 1192 -== **Получить ответ на отправленную на ТС команду** == 1193 - 1194 -(% class="box infomessage" %) 1195 -((( 1196 -(% lang="en-US" %)**GET **(%%)**/api/v3/Vehicles/cmd/{cmdId}/answer** 1197 -))) 1198 - 1199 -Идентификатор команды: cmdid 1200 - 1201 -Запрос от терминала на ответ команды 1202 - 1203 -Пример ответ от терминала: 1204 - 1205 -ID= "" ~/~/ идентификатор произвольного поля 1206 -Soft="" ~/~/ версия софта 1207 -GPS=4 ~/~/ тип трекера 1208 -Time=11:05:43 28.06.24 ~/~/ время запроса 1209 -Lat=45.056221 ~/~/ широта 1210 -Lon=39.035938 ~/~/ долгота 1211 -Speed=0.0 ~/~/ скорость 1212 -Course=181.4 ~/~/направление 1213 - 1214 -((( 1215 -== **Список отправленных объекту команд с ответами** == 1216 - 1217 -(% class="box infomessage" %) 1218 -((( 1219 -(% lang="en-US" %)**GET**(%%)**/api/v3/Vehicles/cmd/{vehicleId}/history** 1220 -))) 1221 - 1222 -Идентификатор ТС: vehicleId 1223 - 1224 -В ответе приходит список команд с их ID, временем отправки, количестве попыток отправки и ответами терминала. 1225 - 1226 -Пример ответа терминала 1227 - 1228 -[ 1229 -{ 1230 -"id": "", ~/~/ идентификатор пользователя 1231 -"commandText": "", ~/~/Текст команды. 1232 -"templateId": "", ~/~/Идентификатор шаблона 1233 -"updated": "", ~/~/ Время отправки 1234 -"tryCount": 0, ~/~/ Количество попыток отправки команды 1235 -"answer": "", ~/~/ Ответ терминала. 1236 -"status": "" ~/~/ Статус отправки 1237 -} 1238 -] 1239 -))) 1240 - 1241 1241 == (% style="color:#000000; font-size:16px" %)**Добавление объекта**(%%) == 1242 1242 1243 1243 (% class="box successmessage" %) ... ... @@ -1255,7 +1255,8 @@ 1255 1255 1256 1256 (% style="color:#000000" %)Параметры в теле запроса (JSON): //Обязательные параметры наименование и модель объекта //В теле запроса - объект JSON 1257 1257 1258 -(% style="color:#000000" %){(%%) 1229 +(% style="color:#000000" %){ 1230 + 1259 1259 "parentId": "" , ~/~/ ID клиента 1260 1260 "name": "" , ~/~/ имя ТС 1261 1261 "imei": "" , ~/~/ IMEI ... ... @@ -1276,6 +1276,7 @@ 1276 1276 "consumptionPerHourSeasonalEnd": "" , ~/~/ День/месяц окончания работы сезонной нормы расхода на моточас 1277 1277 "consumptionIdleSeasonalBegin": "" , ~/~/ День/месяц начала работы сезонной нормы расхода на х/х 1278 1278 "consumptionIdleSeasonalEnd": "" , ~/~/ День/месяц окончания работы сезонной нормы расхода на х/х 1251 + 1279 1279 "mileageCalcMethod": 0, 1280 1280 "mileageCoeff": 0, 1281 1281 "locationByCellId": true, ... ... @@ -1308,6 +1308,7 @@ 1308 1308 "lastInspectionDate": "" , ~/~/ Дата последнего ТО (null - не указано) 1309 1309 "maxQuantity": "" ~/~/ Сколько раз выполнить задание (null - однократно) 1310 1310 } 1284 + 1311 1311 "drivers": [ ~/~/ Водители 1312 1312 { 1313 1313 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ... ... @@ -1322,7 +1322,8 @@ 1322 1322 "retries": 0 1323 1323 } 1324 1324 ], 1325 -"sensors": [ ~/~/ Датчики 1299 + 1300 + "sensors": [ ~/~/ Датчики 1326 1326 { 1327 1327 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID датчика 1328 1328 "kind": 0, ~/~/ Тип, Simple - простой, Composite - виртуальный ... ... @@ -1360,43 +1360,41 @@ 1360 1360 "additionalProp2": "string", 1361 1361 "additionalProp3": "string" 1362 1362 }, 1338 + 1363 1363 ~/~/ Характерные для произвольного: 1340 + 1364 1364 ~/~/ "EventsEnabled": "off", ~/~/ Фиксировать события работы: on, off 1342 + 1365 1365 ~/~/ "EventsTemplateName": "Работа Произвольный", ~/~/ Наименование события работы 1344 + 1366 1366 ~/~/ "EventsCountEnabled": "off", ~/~/ Фиксировать количество срабатываний: on, off 1346 + 1367 1367 ~/~/ "EventsCountTemplateName": "Количество срабатываний Произвольный", ~/~/Наименование ~/~/события количества срабатываний 1348 + 1368 1368 ~/~/ "MapDisplayEnabled": "off", ~/~/ Отображать на карте: on, off 1350 + 1369 1369 ~/~/ "ChartDisplayEnabled": "off", ~/~/ Отображать на графике объекта: on, off 1352 + 1370 1370 ~/~/ "PayloadChartDisplayEnabled": "off", ~/~/ Отображать на графике полезной нагрузки: on, off 1354 + 1371 1371 ~/~/ "DrawType": ~/~/ тип отрисовки line, bar (Линия, Область) 1356 + 1372 1372 ~/~/ Характерные для таблицы тарировки Вкл./Выкл.: 1358 + 1373 1373 ~/~/ "ValueOn": "Вкл.", 1374 -~/~/ "ValueOff": "Выкл." 1375 - "summaryMaxValue": 0 ~/~/ Определяет максимальное значение датчика в режиме накопления. 1376 1376 1377 -((( 1378 - "valueIntervals": [ ~/~/ Интервалы значений для подсветки в мониторинге 1379 - { 1380 - "from": 0, ~/~/ С какого значения 1381 - "color": "string", ~/~/ Каким цветом 1382 - "text": "string" ~/~/ Текст подписи к этому интервалу 1383 - } 1384 - ] 1361 +~/~/ "ValueOff": "Выкл." 1362 + "summaryMaxValue": 0 ~/~/ Макс. значение 1385 1385 } 1386 1386 ], 1387 -))) 1388 - 1389 - "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid датчика, выбранного для подсветки его значения в различных интервалах 1390 - 1391 - 1392 1392 "customFields": [ ~/~/ Произвольные поля 1393 1393 { 1394 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ System.Guid идентификатор элемента сущности1395 - "name": "string", ~/~/ Наименование произвольного поля1396 - "value": "string", ~/~/ Значение произвольного поля1397 - "forClient": true, ~/~/ Отобразить произвольное поле у клиента1398 - "forTooltip": true, ~/~/ Отобразить произвольное поле в подсказке (при наведении на ТС на карте)1399 - "forReport": true ~/~/ Отобразить произвольное поле в отчете1367 + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 1368 + "name": "string", 1369 + "value": "string", 1370 + "forClient": true, 1371 + "forTooltip": true, 1372 + "forReport": true 1400 1400 } 1401 1401 ] 1402 1402 } ... ... @@ -1403,161 +1403,55 @@ 1403 1403 1404 1404 (% style="color:#000000" %)Ответ: 1405 1405 1379 +(% style="color:#000000" %){ 1406 1406 1407 -((( 1408 -((( 1409 -((( 1410 -{ 1411 - "vehicleId": 0, ~/~/ ID ТС 1412 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid владельца ТС 1413 - "name": "string", ~/~/ Имя объекта 1414 - "imei": "string", ~/~/ IMEI 1415 - "deviceTypeId": 0, ~/~/ ID типа устройства 1416 - "modelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID модели 1417 - "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID подразделения 1418 - "sim1": "string", ~/~/ SIM1 1419 - "sim2": "string", ~/~/ SIM2 1420 - "consumptionPer100Km": 0, ~/~/ Расход топлива на 100 км 1421 - "consumptionPerHour": 0, ~/~/ Расход топлива на моточас 1422 - "consumptionIdle": 0, ~/~/ Расход топлива на холостом ходу 1423 - "consumptionPer100KmSeasonal": 0, ~/~/ Сезонный расход топлива на 100 км 1424 - "consumptionPerHourSeasonal": 0, ~/~/ Сезонный расход топлива на моточас 1425 - "consumptionIdleSeasonal": 0, ~/~/ Сезонный расход топлива на холостом ходу 1426 - "consumptionPer100KmSeasonalBegin": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц начала работы сезонной нормы расхода на 100 км 1427 - "consumptionPer100KmSeasonalEnd": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на 100 км 1428 - "consumptionPerHourSeasonalBegin": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц начала работы сезонной нормы расхода на моточас 1429 - "consumptionPerHourSeasonalEnd": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на моточас 1430 - "consumptionIdleSeasonalBegin": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц начала работы сезонной нормы расхода на х/х 1431 - "consumptionIdleSeasonalEnd": "2024-10-30T08:11:35.622Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на х/х 1432 - "mileageCalcMethod": 0, ~/~/ Вид расчёта пробега (0 - ByGps, 1 - ByMileageSensor) 1433 - "mileageCoeff": 0, ~/~/ Коэффициент пробега при расчёте пробега по GPS (по умолчанию - 1) 1434 - "locationByCellId": true, ~/~/ Вычислять ли положение по базовым станциям, если координаты по GPS невалидны? 1435 - "dottedLineTrackWhenNoCoords": true, ~/~/ Обозначать пунктиром трек при отсутствии координат. 1436 - "showLineTrackWhenNoCoords": true, ~/~/ Обозначать трек при отсутствии координат. 1437 - "counters": { ~/~/ Dto для состояний счётчиков 1438 - "mileageEnabled": true, ~/~/ Флаг включения счётчика "Пробег" 1439 - "motohoursEnabled": true, ~/~/ Флаг включения счётчика "Моточасы" 1440 - "mileage": 0, ~/~/ Пробег 1441 - "motohours": 0 ~/~/ Моточасы 1442 - }, 1443 - "cmsv6Parameters": { ~/~/ Dto для CMSv6 1444 - "id": "string", ~/~/ CMSV6 Идентификатор 1445 - "enabled": true, ~/~/ Признак включения 1446 - "host": "string", ~/~/ IP-адрес или доменное имя из URL веб-сайта CMSV6. Порт также можно указать. В случае использования безопасного соединения необходимо указать протокол. 1447 - "login": "string", ~/~/ CMSV6 имя учетной записи 1448 - "password": "string" ~/~/ CMSV6 — пароль учетной записи 1449 - }, 1450 - "inspectionTasks": [ ~/~/ Dto для описания задачи на ТО 1451 - { 1452 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID задачи 1453 - "enabled": true, ~/~/ Признак включения 1454 - "name": "string", ~/~/ Имя задания 1455 - "description": "string", ~/~/ Описание задания 1456 - "mileageCondition": 0, ~/~/ Условие по пробегу (в метрах) 1457 - "lastMileage": 0, ~/~/ Пробег (в метрах) на момент последнего ТО 1458 - "motohoursCondition": 0, ~/~/ Условие по моточасам (в секундах) 1459 - "lastMotohours": 0, ~/~/ Моточасы (в секундах) на момент последнего ТО 1460 - "periodicCondition": 0, ~/~/ Условие периодичности по времени 1461 - "kind": 0, ~/~/ Определяет вид периодичности ТО.( 0 - Дни, 1 - Месяцы , 2 - Годы) 1462 - "lastInspectionDate": "2024-10-30T08:11:35.622Z", ~/~/ Дата последнего ТО 1463 - "maxQuantity": 0 ~/~/ Условие по количеству записей для деактивации 1381 + "vehicleId": "", ~/~/ID ТС 1382 + "parentId": "", ~/~/Guid владельца ТС 1383 + "name": "", ~/~/Имя объекта 1384 + "imei": "", ~/~/IMEI 1385 + "deviceTypeId": "", ~/~/ID типа устройства 1386 + "modelId": "", ~/~/ID модели 1387 + "unitId": "", ~/~/ID подразделения 1388 + "sim1": "", ~/~/SIM1 1389 + "sim2": "", ~/~/SIM2 1390 + "consumptionPer100Km": "", ~/~/Расход топлива на 100 км 1391 + "consumptionIdle": "", ~/~/Расход топлива на холостом ходу 1392 + "counters": { ~/~/Счётчики 1393 + "mileageEnabled": true, 1394 + "motohoursEnabled": true, 1395 + "mileage": "", 1396 + "motohours": 345.0 1397 + }, 1398 + "cmsv6Parameters": { ~/~/Параметры CmsV6 1399 + "id": null, 1400 + "enabled": true, ~/~/флаг включения 1401 + "host": "", ~/~/ IP-адрес или доменное имя из URL веб-сайта CMSV6 1402 + "login": "", ~/~/ имя учетной записи 1403 + "password": "" ~/~/ пароль учетной записи 1404 + }, 1405 + "inspectionTasks": { ~/~/ задания на ТО 1406 + "id": "", ~/~/ ID задачи 1407 + "enabled": false, ~/~/ Признак включения 1408 + "name": "", ~/~/ Имя задания 1409 + "description": "", ~/~/ Описание задания 1410 + "mileageCondition": "", ~/~/ Условие по пробегу 1411 + "lastMileage": "", ~/~/ Пробег (в метрах) 1412 + "motohoursCondition": "", ~/~/ Условие по моточасам 1413 + "lastMotohours": "", ~/~/ Моточасы 1414 + "periodicCondition": "", ~/~/ Условие периодичности по времени 1415 + "kind": "", ~/~/ Вид периодичности по времени 1416 + "maxQuantity": "" ~/~/ Сколько раз выполнить задание (null - однократно) 1464 1464 } 1465 - ], 1466 - "drivers": [ ~/~/ Список водителей. Определяет класс назначения водителя на объект. 1467 - { 1468 - "vehicleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор объекта. 1469 - "inputNumber": 0, ~/~/ № входа. 1470 - "createTime": "2024-10-30T08:11:35.622Z", ~/~/ Момент времени создания назначения. 1471 - "comment": "string", ~/~/ Комментарий 1472 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор назначения. 1473 - "driverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор водителя. 1474 - "beginTime": "2024-10-30T08:11:35.622Z", ~/~/ Момент времени начала назначения. 1475 - "endTime": "2024-10-30T08:11:35.622Z" ~/~/ Момент времени окончания назначения. 1476 - } 1477 - ], 1478 - "commandTemplates": [ ~/~/ Список шаблонов команд 1479 - { 1480 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID шаблона 1481 - "name": "string", ~/~/ Название шаблона команд 1482 - "command": "string", ~/~/ Команда на выполнение 1483 - "retries": 0 ~/~/ Лимит попыток отправки 1484 - } 1485 - ], 1486 - "sensors": [ ~/~/ Список датчиков 1487 - { 1488 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID датчика 1489 - "kind": 0, ~/~/ Определяет виды датчиков. 0 - Simple, 1 - Composite 1490 - "type": 0, ~/~/ Определяет типы датчиков. 0 - None, 1 - FuelLvl, 2 - PowerLevel, 3 - Consumption, 4 - Ignition, 5 - Crane, 6 - Greider, 8 - Power, 11 - Arrow, 14 - Otval, 15 - Sand, 17 - MixerLand, 18 - MixerMove, 20 - Temperature, 21 - Warning, 22 - Metla, 23 - Kosilka, 24 - DriverRFID, 25 - ReFueller, 27 - GrainLvl, 28 - EngineRPM, 29 - BodyUp, 31 - EngineTemperature, 32 - TrailerRFID, 33 - Tank, 34 - Unloading, 35 - Custom, 36 - GNSS, 37 - WeighingTerminal, 38 - RelativeMotohours, 39 - MileageSensor, 40 - Motohours, 41 - BunkerLowLevel, 42 - BunkerHighLevel, 43 - AppliedKg, 44 - TreatedHa, 45 - RateKgHa, 46 - FertilizerLevel, 47 - FactOfWork, 48 - ReapingAggregate, 49 - AverageRateKgHa, 50 - Speed 1491 - "name": "string", ~/~/ Имя датчика 1492 - "inputType": 0, ~/~/ Тип входа, на который подключается определенный тип датчика. 0 - Digital, 1 - Analog, 2 - Impulse, 3 - Rs232, 4 - Rs485, 5 - FMS, 6 - Diagnosis, 7 - Wire, 8 - ImpulseFrequency, 9 - BLE, 255 - Virtual 1493 - "inputNumber": 0, ~/~/ Номер входа 1494 - "pseudonym": "string", ~/~/ Псевдоним 1495 - "medianDegree": 0, ~/~/ Степень медианной фильтрации 1496 - "isInverted": true, ~/~/ Признак инверсии 1497 - "disabled": true, ~/~/ Датчик не участвует в обработке 1498 - "gradeType": 0, ~/~/ Способ тарировки показаний датчика. 0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs 1499 - "gradesTables": [ ~/~/ Тарировка 1500 - { 1501 - "grades": [ ~/~/ Таблицы тарировки 1502 - { 1503 - "input": 0, ~/~/ Вход 1504 - "output": 0 ~/~/ Выход 1505 - } 1506 - ], 1507 - "relevanceTime": "2024-10-30T08:11:35.622Z" ~/~/ Время, с которого наступает актуальность таблицы тарировки 1508 - } 1509 - ], 1510 - "showInTooltip": true, ~/~/ Отображение в подсказке 1511 - "showLastValid": true, ~/~/ Отображать последнее валидное значение 1512 - "showAsDutOnGraph": true, ~/~/ Отображать на графике как датчик уровня топлива 1513 - "showWithoutIgn": true, ~/~/ Отображать без включенного зажигания 1514 - "agrFunction": 0, ~/~/ Агрегирующая функция. 0 - SUM, 1 - AVG, 2 - EXPRESSION 1515 - "expr": "string", ~/~/ Выражение 1516 - "children": [ ~/~/ Cписок добавленных в агрегацию физ. датчиков 1517 - "string" 1518 - ], 1519 - "customParams": { 1520 - "additionalProp1": "string", 1521 - "additionalProp2": "string", 1522 - "additionalProp3": "string" 1523 - }, 1524 - "summaryMaxValue": 0, ~/~/ Определяет максимальное значение датчика в режиме накопления. 1525 - "valueIntervals": [ ~/~/ Интервалы значений для подсветки в мониторинге 1526 - { 1527 - "from": 0, ~/~/ С какого значения 1528 - "color": "string", ~/~/ Каким цветом 1529 -))) 1530 1530 1531 -((( 1532 - "text": "string" ~/~/ Текст подписи к этому интервалу 1533 - } 1534 - ] 1535 - } 1536 - ], 1537 - "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid датчика, выбранного для подсветки его значения в различных интервалах 1538 - "customFields": [ ~/~/ Список произвольных полей 1539 - { 1540 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ System.Guid идентификатор элемента сущности 1541 - "name": "string", ~/~/ Наименование произвольного поля 1542 - "value": "string", ~/~/ Значение произвольного поля 1543 - "forClient": true, ~/~/ Отобразить произвольное поле у клиента 1544 - "forTooltip": true, ~/~/ Отобразить произвольное поле в подсказке (при наведении на ТС на карте) 1545 - "forReport": true ~/~/ Отобразить произвольное поле в отчете 1546 - } 1547 - ], 1548 - "motohoursCalcMethod": 0 ~/~/ Вид расчета моточасов. 0 - ByIgnitionSensor, 1 - ByMotohoursSensor, 2 - ByRelativeMotohoursSensor 1549 -} 1550 -))) 1551 -))) 1552 -))) 1419 +(% style="text-align:left" %) 1420 +(% style="color:#000000" %)} 1553 1553 1554 - 1555 1555 **Валидация:** 1556 1556 - сезонный параметр может быть задан только если задана соответствующая обычная норма; 1557 1557 - сезонные начало и окончание могут быть заданы только если задана соответствующая сезонная норма; 1558 1558 - при задании сезонной нормы обязательны соответствующие даты начала/окончания. 1559 1559 1560 -== (% style="color:#000000; font-size:16px" %)**Получение списка объектовс основными параметрами**(%%) ==1427 +== (% style="color:#000000; font-size:16px" %)**Получение параметров объектов**(%%) == 1561 1561 1562 1562 (% class="box infomessage" %) 1563 1563 ((( ... ... @@ -1598,12 +1598,9 @@ 1598 1598 "imei": null, ~/~/ "710179307", ~/~/ IMEI (string, опционально) 1599 1599 "sim": null, ~/~/ "938112", ~/~/ Номер телефона (string, опционально) 1600 1600 "deviceTypeId": null, ~/~/ 5, ID типа устройства (short, опционально) 1601 - "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/ ID подразделения (опционально) 1602 - "unitName": "string", ~/~/ Название подразделения (опционально) 1603 - "customFields": "string", ~/~/ Поиск по содержимому произвольных полей ТС (опционально) 1604 - "vehicleGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID группы ТС (опционально) 1605 - "vehicleGroupName": "string", ~/~/ Название группы ТС (опционально) 1606 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/ Идентификатор агента, для которого надо получить данные 1468 + "parentId": null, ~/~/ ID клиента (Guid, опционально) 1469 + "unitId": null, ~/~/ "b33548c3-73c3-40e4-8b78-81470ae744ed", ID подразделения (Guid, опционально) 1470 + "customFields": null ~/~/ значение любого из произвольных полей ТС 1607 1607 } 1608 1608 1609 1609 (% style="color:#000000" %)Фильтрация осуществляется по точному совпадению значений параметров «__**vehicleId**__», «__**deviceTypeId**__», «__**parentId**__», «__**unitId**__», и по частичному - «__**name**__», «__**imei**__», «__**sim**__». Фильтрация по значению параметра «__**sim**__» осуществляется при наличии у авторизованного пользователя права **«__Просмотр номеров телефонов объектов__»**. ... ... @@ -1610,14 +1610,8 @@ 1610 1610 1611 1611 (% style="color:#000000" %)Ответ: 1612 1612 1613 -(% style="color:#000000" %)[ 1614 -{ 1477 +(% style="color:#000000" %){ 1615 1615 1616 -((( 1617 - "vehicleGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid TC 1618 -))) 1619 - 1620 -((( 1621 1621 (% style="color:#000000" %) "vehicleId": "" ~/~/ идентификатор объекта 1622 1622 "name": "" ~/~/ наименование объекта 1623 1623 "imei": "" ~/~/ IMEI объекта ... ... @@ -1643,21 +1643,9 @@ 1643 1643 "forClient": true, ~/~/ право на отображение у клиента 1644 1644 "forTooltip": false, ~/~/ право на отображение в подсказке 1645 1645 "forReport": false ~/~/ право на отображение в отчетах 1646 -))) 1504 + }(%%) 1505 +(% style="color:#000000" %)} 1647 1647 1648 -((( 1649 - } 1650 - ], 1651 - "vehicleGroups": [ ~/~/ Группы ТС 1652 - { 1653 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ System.Guid идентификатор элемента сущности 1654 - "name": "string" ~/~/ Наименование группы ТС 1655 - } 1656 - ] 1657 - } 1658 -] 1659 -))) 1660 - 1661 1661 (% style="color:#000000" %) Параметры «__**sim1**__» и «__**sim2**__» содержатся в ответе при наличии у авторизованного пользователя права **«__Просмотр номеров телефонов объектов__»**. Параметр «__**status**__» содержится в ответе при наличии у авторизованного пользователя права **«__Просмотр статуса объекта__»**. 1662 1662 1663 1663 == (% style="color:#000000; font-size:16px" %)**Изменение статуса объекта**(%%) == ... ... @@ -1689,11 +1689,13 @@ 1689 1689 "data": "", ~/~/ Данные 1690 1690 "overwrite": false, ~/~/ Флаг перезаписи 1691 1691 "stage": "", ~/~/ Состояние, может быть null 1538 + 1692 1692 (% style="color:#000000" %)} 1693 1693 1694 1694 (% style="color:#000000" %)Ответ: 1695 1695 1696 -(% style="color:#000000" %){(%%) 1543 +(% style="color:#000000" %){ 1544 + 1697 1697 "status": "", ~/~/ значение статуса 1698 1698 "date": "", ~/~/ Дата смены статуса 1699 1699 "description": "", ~/~/ Описание ... ... @@ -1700,10 +1700,10 @@ 1700 1700 "data": "", ~/~/ Данные 1701 1701 "overwrite": false, ~/~/ Флаг перезаписи 1702 1702 "stage": "", ~/~/ Состояние 1551 + 1552 +(% style="text-align:left" %) 1703 1703 (% style="color:#000000" %) } 1704 1704 1705 -== == 1706 - 1707 1707 == (% style="color:#000000; font-size:16px" %)**Редактирование объекта**(%%) == 1708 1708 1709 1709 (% class="box warningmessage" %) ... ... @@ -1791,7 +1791,8 @@ 1791 1791 "retries": 0 1792 1792 } 1793 1793 ], 1794 -"sensors": [ ~/~/ Датчики 1642 + 1643 + "sensors": [ ~/~/ Датчики 1795 1795 { 1796 1796 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID датчика 1797 1797 "kind": 0, ~/~/ Тип, Simple - простой, Composite - виртуальный ... ... @@ -1829,215 +1829,95 @@ 1829 1829 "additionalProp2": "string", 1830 1830 "additionalProp3": "string" 1831 1831 }, 1681 + 1832 1832 ~/~/ Характерные для произвольного: 1683 + 1833 1833 ~/~/ "EventsEnabled": "off", ~/~/ Фиксировать события работы: on, off 1685 + 1834 1834 ~/~/ "EventsTemplateName": "Работа Произвольный", ~/~/ Наименование события работы 1687 + 1835 1835 ~/~/ "EventsCountEnabled": "off", ~/~/ Фиксировать количество срабатываний: on, off 1689 + 1836 1836 ~/~/ "EventsCountTemplateName": "Количество срабатываний Произвольный", ~/~/Наименование ~/~/события количества срабатываний 1691 + 1837 1837 ~/~/ "MapDisplayEnabled": "off", ~/~/ Отображать на карте: on, off 1693 + 1838 1838 ~/~/ "ChartDisplayEnabled": "off", ~/~/ Отображать на графике объекта: on, off 1695 + 1839 1839 ~/~/ "PayloadChartDisplayEnabled": "off", ~/~/ Отображать на графике полезной нагрузки: on, off 1697 + 1840 1840 ~/~/ "DrawType": ~/~/ тип отрисовки line, bar (Линия, Область) 1699 + 1841 1841 ~/~/ Характерные для таблицы тарировки Вкл./Выкл.: 1701 + 1842 1842 ~/~/ "ValueOn": "Вкл.", 1703 + 1843 1843 ~/~/ "ValueOff": "Выкл." 1844 1844 "summaryMaxValue": 0 ~/~/ Макс. значение 1845 - 1846 - "valueIntervals": [ ~/~/ Интервалы значений для подсветки в мониторинге 1847 - { 1848 - "from": 0, ~/~/ С какого значения 1849 - "color": "string", ~/~/ Каким цветом 1850 - "text": "string" ~/~/ Текст подписи к этому интервалу 1851 - } 1852 - ] 1853 1853 } 1854 1854 ], 1855 - "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid датчика, выбранного для подсветки его значения в различных интервалах 1856 - 1857 1857 "customFields": [ ~/~/ Произвольные поля 1858 - { 1859 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ System.Guid идентификатор элемента сущности1860 - "name": "string", ~/~/ Наименование произвольного поля1861 - "value": "string", ~/~/ Значение произвольного поля1862 - "forClient": true, ~/~/ Отобразить произвольное поле у клиента1863 - "forTooltip": true, ~/~/ Отобразить произвольное поле в подсказке (при наведении на ТС на карте)1864 - "forReport": true ~/~/ Отобразить произвольное поле в отчете1709 + { 1710 + "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 1711 + "name": "string", 1712 + "value": "string", 1713 + "forClient": true, 1714 + "forTooltip": true, 1715 + "forReport": true 1865 1865 } 1866 1866 ] 1867 1867 } 1868 1868 1869 - 1870 1870 (% style="color:#000000" %)Ответ: 1871 1871 1872 -((( 1873 -{ 1874 - "vehicleId": 0, ~/~/ ID ТС 1875 - "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid владельца ТС 1876 - "name": "string", ~/~/ Имя объекта 1877 - "imei": "string", ~/~/ IMEI 1878 - "deviceTypeId": 0, ~/~/ ID типа устройства 1879 - "modelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID модели 1880 - "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID подразделения 1881 - "sim1": "string", ~/~/ SIM1 1882 - "sim2": "string", ~/~/ SIM2 1883 - "consumptionPer100Km": 0, ~/~/ Расход топлива на 100 км 1884 - "consumptionPerHour": 0, ~/~/ Расход топлива на моточас 1885 - "consumptionIdle": 0, ~/~/ Расход топлива на холостом ходу 1886 - "consumptionPer100KmSeasonal": 0, ~/~/ Сезонный расход топлива на 100 км 1887 - "consumptionPerHourSeasonal": 0, ~/~/ Сезонный расход топлива на моточас 1888 - "consumptionIdleSeasonal": 0, ~/~/ Сезонный расход топлива на холостом ходу 1889 - "consumptionPer100KmSeasonalBegin": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц начала работы сезонной нормы расхода на 100 км 1890 - "consumptionPer100KmSeasonalEnd": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на 100 км 1891 - "consumptionPerHourSeasonalBegin": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц начала работы сезонной нормы расхода на моточас 1892 - "consumptionPerHourSeasonalEnd": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на моточас 1893 - "consumptionIdleSeasonalBegin": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц начала работы сезонной нормы расхода на х/х 1894 - "consumptionIdleSeasonalEnd": "2024-10-30T10:31:17.196Z", ~/~/ День/месяц окончания работы сезонной нормы расхода на х/х 1895 - "mileageCalcMethod": 0, ~/~/ Вид расчёта пробега. 0 - ByGps, 1 - ByMileageSensor 1896 - "mileageCoeff": 0, ~/~/ Коэффициент пробега при расчёте пробега по GPS (по умолчанию - 1) 1897 - "locationByCellId": true, ~/~/ Вычислять ли положение по базовым станциям, если координаты по GPS невалидны? 1898 - "dottedLineTrackWhenNoCoords": true, ~/~/ Обозначать пунктиром трек при отсутствии координат. 1899 - "showLineTrackWhenNoCoords": true, ~/~/ Обозначать трек при отсутствии координат. 1900 - "counters": { ~/~/ состояний счётчиков 1901 - "mileageEnabled": true, ~/~/ Флаг включения счётчика "Пробег" 1902 - "motohoursEnabled": true, ~/~/ Флаг включения счётчика "Моточасы" 1903 - "mileage": 0, ~/~/ Пробег 1904 - "motohours": 0 ~/~/ Моточасы 1905 - }, 1906 - "cmsv6Parameters": { ~/~/ Dto для CMSv6 1907 - "id": "string", ~/~/ CMSV6 Идентификатор 1908 - "enabled": true, ~/~/ Признак включения 1909 - "host": "string", ~/~/ IP-адрес или доменное имя из URL веб-сайта CMSV6. 1910 -))) 1722 +(% lang="en-US" style="text-align:left" %) 1723 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %){ 1911 1911 1912 - 1913 -((( 1914 -~/~/ Порт также можно указать. В случае использования безопасного соединения необходимо указать протокол. 1915 - "login": "string", ~/~/ CMSV6 имя учетной записи 1916 - "password": "string" ~/~/ CMSV6 — пароль учетной записи 1917 - }, 1918 - "inspectionTasks": [ ~/~/ Задания на ТО 1919 - { 1920 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID задачи 1921 - "enabled": true, ~/~/ Признак включения 1922 - "name": "string", ~/~/ Имя задания 1923 - "description": "string", ~/~/ Описание задания 1924 - "mileageCondition": 0, ~/~/ Условие по пробегу (в метрах) 1925 - "lastMileage": 0, ~/~/ Пробег (в метрах) на момент последнего ТО 1926 - "motohoursCondition": 0, ~/~/ Условие по моточасам (в секундах) 1927 - "lastMotohours": 0, ~/~/ Моточасы (в секундах) на момент последнего ТО 1928 - "periodicCondition": 0, ~/~/ Условие периодичности по времени 1929 - "kind": 0, ~/~/ Определяет вид периодичности ТО. 0 - Дни, 1 - Месяца, 2 - Годы 1930 - "lastInspectionDate": "2024-10-30T10:31:17.196Z", ~/~/ Дата последнего ТО 1931 - "maxQuantity": 0 ~/~/ Условие по количеству записей для деактивации 1932 - } 1933 - ], 1934 - "drivers": [ ~/~/ Список водителей 1935 - { 1936 - "vehicleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор объекта. 1937 - "inputNumber": 0, ~/~/ № входа. 1938 - "createTime": "2024-10-30T10:31:17.196Z", ~/~/ Момент времени создания назначения. 1939 - "comment": "string", ~/~/ Комментарий. 1940 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор назначения. 1941 - "driverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Идентификатор водителя. 1942 - "beginTime": "2024-10-30T10:31:17.196Z", ~/~/ Момент времени начала назначения. 1943 - "endTime": "2024-10-30T10:31:17.196Z" ~/~/ Момент времени окончания назначения. 1944 - } 1945 - ], 1946 - "commandTemplates": [ ~/~/ Список шаблонов команд 1947 - { 1948 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID шаблона 1949 - "name": "string", ~/~/ Название шаблона команд 1950 - "command": "string", ~/~/ Команда на выполнение 1951 - "retries": 0 ~/~/ Лимит попыток отправки 1952 - } 1953 - ], 1954 - "sensors": [ ~/~/ Список датчиков 1955 - { 1956 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ ID датчика 1957 - "kind": 0, ~/~/ Определяет виды датчиков. 0 - Simple, 1 - Composite 1958 - "type": 0, ~/~/ Определяет типы датчиков. 0 - None, 1 - FuelLvl, 2 - PowerLevel, 3 - Consumption, 4 - Ignition, 1959 -))) 1960 - 1961 -((( 1962 -~/~/ 5 - Crane, 6 - Greider, 8 - Power, 11 - Arrow, 14 - Otval, 15 - Sand, 17 - MixerLand, 18 - MixerMove, 20 - Temperature, 1963 -))) 1964 - 1965 -((( 1966 -~/~/ 21 - Warning, 22 - Metla, 23 - Kosilka, 24 - DriverRFID, 25 - ReFueller, 27 - GrainLvl, 28 - EngineRPM, 29 - BodyUp, 1967 -))) 1968 - 1969 -((( 1970 -~/~/ 31 - EngineTemperature, 32 - TrailerRFID, 33 - Tank, 34 - Unloading, 35 - Custom, 36 - GNSS, 37 - WeighingTerminal, 1971 -))) 1972 - 1973 -((( 1974 -~/~/ 38 - RelativeMotohours, 39 - MileageSensor, 40 - Motohours, 41 - BunkerLowLevel, 42 - BunkerHighLevel, 1975 -))) 1976 - 1977 -((( 1978 -~/~/ 43 - AppliedKg, 44 - TreatedHa, 45 - RateKgHa, 46 - FertilizerLevel, 47 - FactOfWork, 48 - ReapingAggregate, 49 - AverageRateKgHa, 50 - Speed 1979 - "name": "string", ~/~/ Имя датчика 1980 - "inputType": 0, ~/~/ Тип входа, на который подключается определенный тип датчика. 0 - Digital, 1 - Analog, 2 - Impulse, 1981 -))) 1982 - 1983 -((( 1984 -~/~/ 3 - Rs232, 4 - Rs485, 5 - FMS, 6 - Diagnosis, 7 - Wire, 8 - ImpulseFrequency, 9 - BLE, 255 - Virtual 1985 - "inputNumber": 0, ~/~/ Номер входа 1986 - "pseudonym": "string", ~/~/ Псевдоним 1987 - "medianDegree": 0, ~/~/ Степень медианной фильтрации 1988 - "isInverted": true, ~/~/ Признак инверсии 1989 - "disabled": true, ~/~/ Датчик не участвует в обработке 1990 - "gradeType": 0, ~/~/ Способ тарировки показаний датчика. 0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs 1991 - "gradesTables": [ ~/~/ Тарировка 1725 +(% lang="en-US" style="text-align:left" %) 1726 + "vehicleId": "", ~/~/ ID ТС 1727 + "parentId": "", ~/~/ ID клиента 1728 + "name": "", ~/~/ имя ТС 1729 + "imei": "", ~/~/ IMEI 1730 + "deviceTypeId": "", ~/~/ типа устройства 1731 + "modelId": "", ~/~/ ID модели 1732 + "unitId": "", ~/~/ ID подразделения 1733 + "sim1": "", ~/~/ SIM 1 1734 + "sim2": "", ~/~/ SIM2 1735 + "consumptionPer100Km": "", ~/~/ Расход топлива на 100 км 1736 + "consumptionIdle": "", ~/~/ Расход топлива на холостом ходу 1737 + "counters": 1738 + { 1739 + "mileageEnabled": true, ~/~/ флаг активности счётчика «пробег» 1740 + "motohoursEnabled": true, ~/~/ флаг активности счётчика «моточасы» 1741 + "mileage": "", ~/~/ пробег 1742 + "motohours": "", ~/~/ моточасы 1743 + } 1744 + "cmsv6Parameters": ~/~/ параметры CMSv6 1992 1992 { 1993 - "grades": [ ~/~/ Таблицы тарировки 1994 - { 1995 - "input": 0, ~/~/ Вход 1996 - "output": 0 ~/~/ Выход 1997 - } 1998 - ], 1999 - "relevanceTime": "2024-10-30T10:31:17.196Z" ~/~/ Время, с которого наступает актуальность таблицы тарировки 2000 - } 2001 - ], 2002 - "showInTooltip": true, ~/~/ Отображение в подсказке 2003 - "showLastValid": true, ~/~/ Отображать последнее валидное значение 2004 - "showAsDutOnGraph": true, ~/~/ Отображать на графике как датчик уровня топлива 2005 - "showWithoutIgn": true, ~/~/ Отображать без включенного зажигания 2006 - "agrFunction": 0, ~/~/ Агрегирующая функция. 0 - SUM, 1 - AVG, 2 - EXPRESSION 2007 - "expr": "string", ~/~/ Выражение 2008 - "children": [ ~/~/ Cписок добавленных в агрегацию физ. датчиков 2009 - "string" 2010 - ], 2011 - "customParams": { ~/~/ Дополнительные настройки 2012 - "additionalProp1": "string", 2013 - "additionalProp2": "string", 2014 - "additionalProp3": "string" 2015 - }, 2016 - "summaryMaxValue": 0, ~/~/ Определяет максимальное значение датчика в режиме накопления. 2017 - "valueIntervals": [ ~/~/ Интервалы значений для подсветки в мониторинге 1746 + "id": ~/~/ идентификатор 1747 + "enabled": true, ~/~/ флаг включения 1748 + "host": "", ~/~/ IP-адрес или доменное имя из URL веб-сайта CMSV6 1749 + "login": "", ~/~/ имя учетной записи 1750 + "password": "", ~/~/ пароль учетной записи 1751 + } 1752 + "inspectionTasks": ~/~/ задания на ТО 2018 2018 { 2019 - "from": 0, ~/~/ С какого значения 2020 - "color": "string", ~/~/ Каким цветом 2021 - "text": "string" ~/~/ Текст подписи к этому интервалу 1754 + "id": "", ~/~/ ID задания 1755 + "enabled": false, ~/~/ Признак включения 1756 + "name": "", ~/~/ Имя задания 1757 + "description": "", ~/~/ Описание задания 1758 + "mileageCondition": "", ~/~/ Условие по пробегу 1759 + "lastMileage": "", ~/~/ Пробег (в метрах) на момент последнего ТО 1760 + "motohoursCondition": "", ~/~/ Условие по моточасам 1761 + "lastMotohours": "", ~/~/ Моточасы 1762 + "periodicCondition": "", ~/~/ Условие периодичности по времени 1763 + "kind": "", ~/~/ Вид периодичности по времени 1764 + "maxQuantity": "", ~/~/ Сколько раз выполнить задание 2022 2022 } 2023 - ] 2024 - } 2025 - ], 2026 - "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ Guid датчика, выбранного для подсветки его значения в различных интервалах 2027 - "customFields": [ ~/~/ Список произвольных полей 2028 - { 2029 - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/ System.Guid идентификатор элемента сущности 2030 - "name": "string", ~/~/ Наименование произвольного поля 2031 - "value": "string", ~/~/ Значение произвольного поля 2032 - "forClient": true, ~/~/ Отобразить произвольное поле у клиента 2033 - "forTooltip": true, ~/~/ Отобразить произвольное поле в подсказке (при наведении на ТС на карте) 2034 - "forReport": true ~/~/ Отобразить произвольное поле в отчете 2035 - } 2036 - ], 2037 - "motohoursCalcMethod": 0 ~/~/ Вид расчета моточасов. 0 - ByIgnitionSensor, 1 - ByMotohoursSensor, 2 - ByRelativeMotohoursSensor 2038 -} 2039 -))) 2040 2040 1767 +(% lang="en-US" style="text-align:left" %) 1768 +(% lang="ru-RU" style="color:#000000; font-weight:normal" %)} 1769 + 2041 2041 **Валидация:** 2042 2042 - сезонный параметр может быть задан только если задана соответствующая обычная норма; 2043 2043 - сезонные начало и окончание могут быть заданы только если задана соответствующая сезонная норма; ... ... @@ -2082,9 +2082,12 @@ 2082 2082 2083 2083 (% style="color:#000000" %)Ответ: 2084 2084 2085 -(% style="color:#000000" %){(%%) 1814 +(% style="color:#000000" %){ 1815 + 2086 2086 "deviceTypeId" : "", ~/~/ ID типа устройства 2087 2087 "deviceTypeName" : "" ~/~/ Название типа устройства 1818 + 1819 +(% style="text-align:left" %) 2088 2088 (% style="color:#000000" %)} 2089 2089 2090 2090 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Датчики**(%%) = ... ... @@ -2106,10 +2106,13 @@ 2106 2106 2107 2107 (% style="color:#000000" %)Ответ: 2108 2108 2109 -(% style="color:#000000" %){(%%) 1841 +(% style="color:#000000" %){ 1842 + 2110 2110 "id": "", ~/~/ ID типа датчика 2111 2111 "name": "", ~/~/ Название 2112 2112 "description": "", ~/~/ Описание 1846 + 1847 +(% style="text-align:left" %) 2113 2113 (% style="color:#000000" %)} 2114 2114 2115 2115 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Сообщения**(%%) = ... ... @@ -2311,12 +2311,10 @@ 2311 2311 { 2312 2312 "start": "2023-08-09T14:23:14.574Z", ~/~/ Начало 2313 2313 "end": "2023-08-09T14:23:14.574Z", ~/~/ Окончание 2314 - "mileage": 0, ~/~/ Пробег за период, километры 2315 - "mileageBegin": 0, ~/~/ Пробег на начало периода, километры 2316 - "mileageEnd": 0, ~/~/ Пробег на окончание периода, километры 2317 - "motohours": 0, ~/~/ Моточасы за период, секунды 2318 - "motohoursBegin": 0, ~/~/ Моточасы на начало периода, секунды 2319 - "motohoursEnd": 0 ~/~/ Моточасы на окончание периода, секунды 2049 + "mileageBegin": 0, ~/~/ Пробег на начало периода 2050 + "mileageEnd": 0, ~/~/ Пробег на окончание периода 2051 + "motohoursBegin": 0, ~/~/ Моточасы на начало периода 2052 + "motohoursEnd": 0 ~/~/ Моточасы на окончание периода 2320 2320 } 2321 2321 ] 2322 2322 } ... ... @@ -2365,12 +2365,6 @@ 2365 2365 } 2366 2366 ] 2367 2367 2368 -(% class="box warningmessage" %) 2369 -((( 2370 -Максимальное допустимое количество периодов в ответе - 1440. При превышении этого значения будет получена ошибка ""ApiCode":204,"ApiMessage":"Прислана неправильная модель","Message":"Задан слишком маленький период дискретизации"". 2371 -\\При большом количестве периодов существенно растет нагрузка, синхронный запрос может выдать ошибку по таймауту. Рекомендуем не занижать необходимое значение параметра "sampling". 2372 -))) 2373 - 2374 2374 == (% style="color:#000000; font-size:16px" %)**Получение данных о заправках и сливах транспортного средства**(%%) == 2375 2375 2376 2376 (% class="box infomessage" %) ... ... @@ -2434,42 +2434,74 @@ 2434 2434 Тело запроса: 2435 2435 2436 2436 { 2164 + 2437 2437 "vehicleIds": [ ], ~/~/ Список ID объектов 2166 + 2438 2438 "from": "2024-01-30T10:12:19.125Z", ~/~/ Дата и время начало запроса 2168 + 2439 2439 "to": "2024-01-30T10:12:19.125Z", ~/~/ Дата и время окончания запроса 2170 + 2440 2440 "timezone": 0 ~/~/ Временная зона. Если не указана, то по умолчанию UTC+3 2172 + 2441 2441 } 2442 2442 2443 2443 Ответ: 2444 2444 2445 -[ 2177 +[ 2178 + 2446 2446 { 2180 + 2447 2447 "vehicleId": 0, ~/~/ ID объекта 2182 + 2448 2448 "vehicleName": "string", ~/~/ Имя объекта 2184 + 2449 2449 "moves": [ ~/~/ Событие движения 2186 + 2450 2450 { 2188 + 2451 2451 "mileage": 0, ~/~/ Пробег, км 2190 + 2452 2452 "eventId": 0, ~/~/ Идентификатор события 2192 + 2453 2453 "eventName": "string", ~/~/ Название события 2194 + 2454 2454 "start": "2024-01-30T10:17:13.789Z", ~/~/ Дата и время начало события 2196 + 2455 2455 "end": "2024-01-30T10:17:13.789Z", ~/~/ Дата и время окончания события 2198 + 2456 2456 "duration": 0 ~/~/ Продолжительность события, секунд 2200 + 2457 2457 } 2202 + 2458 2458 ], 2204 + 2459 2459 "stops": [ ~/~/ События стоянок 2206 + 2460 2460 { 2461 - "address": "[Street] [House] [City] [State] [Country] [Coordinates]", ~/~/ Адрес события Улица, Дом, Город, Регион, Страна, Координаты 2208 + 2209 + "address": "string", ~/~/ Адрес события 2210 + 2462 2462 "eventId": 0, ~/~/ Идентификатор события 2212 + 2463 2463 "eventName": "string", ~/~/ Название события 2214 + 2464 2464 "start": "2024-01-30T10:17:13.789Z", ~/~/ Дата и время начало события 2216 + 2465 2465 "end": "2024-01-30T10:17:13.789Z", ~/~/ Дата и время окончания события 2218 + 2466 2466 "duration": 0 ~/~/ Продолжительность события, секунд 2220 + 2221 + 2467 2467 } 2223 + 2468 2468 ] 2225 + 2469 2469 } 2227 + 2470 2470 ] 2471 2471 2472 2472 2231 + 2473 2473 == (% style="color:#000000; font-size:16px" %)**Получение последних данных объекта**(%%) == 2474 2474 2475 2475 (% class="box infomessage" %) ... ... @@ -2506,6 +2506,7 @@ 2506 2506 } 2507 2507 2508 2508 2268 + 2509 2509 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Запрос посещений геообъектов**(%%) = 2510 2510 2511 2511 == (% style="color:#000000; font-size:16px" %)**Получение списка всех геообъектов**(%%) == ... ... @@ -2813,32 +2813,6 @@ 2813 2813 2814 2814 Success 2815 2815 2816 - 2817 -== (% style="color:#000000; font-size:16px" %)**Автоматическое продление уведомлений **(%%) == 2818 - 2819 -(% class="box warningmessage" %) 2820 -((( 2821 -**PUT** /api/v3/notifications/prolongation 2822 -))) 2823 - 2824 -Метод позволяет продлить уведомления. 2825 - 2826 -Метод запроса **PUT** 2827 - 2828 -URL запроса: https:~/~/hosting.glonasssoft.ru/api/v3/notifications/prolongation 2829 - 2830 -В заголовках запроса: X-Auth: Токен авторизации. 2831 - 2832 -Тело запроса: 2833 - 2834 -[ 2835 - 2836 -0 2837 - 2838 -] 2839 - 2840 -где 0 идентификатор ids. 2841 - 2842 2842 == (% style="color:#000000; font-size:16px" %)**Удаление уведомления**(%%) == 2843 2843 2844 2844 (% class="box errormessage" %) ... ... @@ -4029,7 +4029,7 @@ 4029 4029 **POST /api/v3/vehicles/import/{agentId}** 4030 4030 ))) 4031 4031 4032 -Запрос позволяет загрузить объекты в систему из файла. Импортируемый файл может быть в формате **xml (расширение*.xls)**или **wlp. **Также они могут находится в** zip-архиве(один файл - один архив).**3766 +Запрос позволяет загрузить объекты в систему из файла. Импортируемый файл может быть в формате **xml** или **wlp. **Также они могут находится в** zip-архиве.** 4033 4033 4034 4034 В пути указывается **agentId** - id клиента. 4035 4035 ... ... @@ -4041,7 +4041,7 @@ 4041 4041 4042 4042 |=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание** 4043 4043 |withNoData|Параметр **Объекты без данных**. Определяет способ загрузки объекта, у которого отсутствует имя или модель объекта. true - загружать, false - пропускать. 4044 -|importMethod|Параметр **Метода импорта датчиков**. Определяет метод добавления датчиков импортируемых из файла. Значение: Replace- Замена,Merge- Слияние,Add- Добавление3778 +|importMethod|Параметр **Метода импорта датчиков**. Определяет метод добавления датчиков импортируемых из файла. Значение: 1 - Замена, 2 - Слияние, 3 - Добавление 4045 4045 4046 4046 В теле использовать тип **form-data,** тип значения** file** 4047 4047 ... ... @@ -4220,67 +4220,64 @@ 4220 4220 Тело запроса: 4221 4221 4222 4222 { 4223 - "vehicleIds": [vehicleId], ~/~/Массив ID объектов4224 - "from": "2023-11-22T09:29:48.051Z", ~/~/ Дата начала запроса4225 - "to": "2023-11-22T09:29:48.051Z" ~/~/ Дата окончания запроса3957 + "vehicleIds": [vehicleId], 3958 + "from": "2023-11-22T09:29:48.051Z", 3959 + "to": "2023-11-22T09:29:48.051Z" 4226 4226 } 4227 4227 3962 +|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание** 3963 +|vehicleIds|Массив ID объектов 3964 +|from|Дата начала запроса 3965 +|to|Дата окончания запроса 3966 + 4228 4228 Ответ: 4229 4229 4230 4230 { 4231 - "items": [ ~/~/ Список в разрезе ТС3970 + "items": [ 4232 4232 { 4233 - "from": "2023-11-22T09:29:48.052Z", ~/~/ Дата начала периода4234 - "to": "2023-11-22T09:29:48.052Z", ~/~/ Дата окончания периода4235 - "vehicleId": 0, ~/~/ ID ТС4236 - "vehicleName": "string", ~/~/ Название ТС4237 - "vehicleModel": "string", ~/~/ Модель ТС4238 - "penalty": 0, ~/~/ Кол-во рассчитанных штрафных баллов в разрезе ТС4239 - "score": 0, ~/~/ Рассчитанная оценка вождения в разрезе ТС4240 - "totalViolations": 0, ~/~/ Нарушений всего4241 - "violationsByType": { ~/~/ Информация о нарушениях по типу4242 - "overspeedingViolations": 0, ~/~/ Нарушений превышения скорости4243 - "accelerationViolations": 0, ~/~/ Нарушений ускорения4244 - "brakingViolations": 0, ~/~/ Нарушений торможения4245 - "turningViolations": 0, ~/~/ Нарушений опасного поворота4246 - "dangerousDrivingViolations": 0, ~/~/ Нарушений резкого вождения4247 - "sensorViolations": 0 ~/~/ Нарушений по датчику3972 + "from": "2023-11-22T09:29:48.052Z", 3973 + "to": "2023-11-22T09:29:48.052Z", 3974 + "vehicleId": 0, 3975 + "vehicleName": "string", 3976 + "vehicleModel": "string", 3977 + "penalty": 0, 3978 + "score": 0, 3979 + "totalViolations": 0, 3980 + "violationsByType": { 3981 + "overspeedingViolations": 0, 3982 + "accelerationViolations": 0, 3983 + "brakingViolations": 0, 3984 + "turningViolations": 0, 3985 + "dangerousDrivingViolations": 0, 3986 + "sensorViolations": 0 4248 4248 }, 4249 - 4250 -((( 4251 - 4252 -))) 4253 - 4254 - "moveTime": 0, ~/~/ Продолжительность движения, сек 4255 - "mileage": 0, ~/~/ Пробег, м 4256 - "tripsCount": 0, ~/~/ Кол-во рейсов 4257 - "trips": [ ~/~/ Информация по рейсу 3988 + "moveTime": 0, 3989 + "mileage": 0, 3990 + "tripsCount": 0, 3991 + "trips": [ 4258 4258 { 4259 - "penalty": 0, ~/~/ Кол-во рассчитанных штрафных баллов за рейс4260 - "score": 0, ~/~/ Рассчитанная оценка вождения за рейс4261 - "violationsCount": 0, ~/~/ Всего нарушений4262 - "violationsByType": { ~/~/ Информация о нарушениях по типу4263 - "overspeedingViolations": 0, ~/~/ Нарушений превышения скорости4264 - "accelerationViolations": 0, ~/~/ Нарушений ускорения4265 - "brakingViolations": 0, ~/~/ Нарушений торможения4266 - "turningViolations": 0, ~/~/ Нарушений опасного поворота4267 - "dangerousDrivingViolations": 0, ~/~/ Нарушений резкого вождения4268 - "sensorViolations": 0 ~/~/ Нарушений по датчику3993 + "penalty": 0, 3994 + "score": 0, 3995 + "violationsCount": 0, 3996 + "violationsByType": { 3997 + "overspeedingViolations": 0, 3998 + "accelerationViolations": 0, 3999 + "brakingViolations": 0, 4000 + "turningViolations": 0, 4001 + "dangerousDrivingViolations": 0, 4002 + "sensorViolations": 0 4269 4269 }, 4270 - 4271 - "startDate": "2024-11-18T13:23:38.516Z", ~/~/ Дата начала поездки 4272 - "endDate": "2024-11-18T13:23:38.516Z", ~/~/ Дата окончания поездки 4273 - "moveTime": 0, ~/~/ Продолжительность движения, сек 4274 - "mileage": 0, ~/~/ Пробег, м 4275 - "motohours": 0, ~/~/ Моточасы, секунды 4276 - "maxSpeed": 0, ~/~/ Максимальная скорость за рейс 4277 - "startAddress": "string", ~/~/ Адрес начала рейса 4278 - "endAddress": "string", ~/~/ Адрес конца рейса 4279 - "drivers": [ ~/~/ Список водителей 4004 + "moveTime": 0, 4005 + "mileage": 0, 4006 + "motohours": 0, 4007 + "maxSpeed": 0, 4008 + "startAddress": "string", 4009 + "endAddress": "string", 4010 + "drivers": [ 4280 4280 { 4281 - "driverGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/GUID водителя4282 - "driverName": "string", ~/~/ФИО водителя4283 - "driverRfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/GUID радиометки4012 + "driverGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 4013 + "driverName": "string", 4014 + "driverRfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" 4284 4284 } 4285 4285 ] 4286 4286 } ... ... @@ -4289,6 +4289,34 @@ 4289 4289 ] 4290 4290 } 4291 4291 4023 +|=(% style="width: 215px; background-color: rgb(230, 230, 230);" %)**Параметр**|=(% style="width: 861px; background-color: rgb(230, 230, 230);" %)**Описание** 4024 +|from|Дата начала запроса 4025 +|to|Дата окончания 4026 +|vehicleId|ID объекта 4027 +|vehicleName|Имя объекта 4028 +|vehicleModel|Модель объекта 4029 +|penalty|Сумма штрафных баллов 4030 +|score|Оценка 4031 +|totalViolations|Суммарное количество нарушений 4032 +|violationsByType|Список типов нарушений и количество нарушений для каждого типа 4033 +|overspeedingViolations|Превышение скорости 4034 +|accelerationViolations|Ускорение 4035 +|brakingViolations|Торможение 4036 +|turningViolations|Резкий поворот 4037 +|dangerousDrivingViolations|Резкое вождение 4038 +|sensorViolations|Нарушение по датчику 4039 +|moveTime|Время в движении 4040 +|mileage|Пробег 4041 +|tripsCount|Количество рейсов 4042 +|motohours|Моточасы 4043 +|maxSpeed|Максимальная скорость 4044 +|startAddress|Адрес начала рейса 4045 +|endAddress|Адрес окончания рейса 4046 +|drivers|Список водителей, которые были на объекте в течениии рейса 4047 +|driverGuid|Guid водителя 4048 +|driverName|Имя водителя 4049 +|driverRfid|Номер Карты-метки 4050 + 4292 4292 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Топливные карты**(%%) = 4293 4293 4294 4294 == (% style="color:#000000; font-size:16px" %)**Запрос транзакций по топливным картам**(%%) == ... ... @@ -4308,284 +4308,55 @@ 4308 4308 Параметры в теле запроса (JSON): 4309 4309 4310 4310 { 4070 + 4311 4311 "startDate": "2024-04-11T10:32:02.395Z", ~/~/Начало периода 4072 + 4312 4312 "endDate": "2024-04-11T10:32:02.395Z", ~/~/Конец периода 4313 - "ids": [ 4314 - "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/гуиды топливных карт 4315 - ], 4316 - "timezone": 0 ~/~/Таймзона 4317 -} 4318 4318 4075 + "ids": [ 4319 4319 4320 -Ответ: 4321 - { 4322 - "date": "2024-04-11T10:41:02.265Z", ~/~/Дата и время транзакции 4323 - "driver": "string", ~/~/Водители, привязанные к ТК 4324 - "object": "string", ~/~/Наименование ТС 4325 - "amount": 0, ~/~/Количество топлива 4326 - "amountDut": 0, ~/~/Количество по ДУТ 4327 - "amountDiff": 0, ~/~/Разница, л 4328 - "amountDiffPerc": 0, ~/~/Разница, % 4329 - "summa": 0, ~/~/Стоимость, руб 4330 - "serviceName": "string", ~/~/Тип топлива 4331 - "price": 0, ~/~/Цена за литр, руб 4332 - "cardName": "string", ~/~/Наименование ТК 4333 - "cardNum": "string", ~/~/Номер ТК 4334 - "operator": "string", ~/~/Оператор ТК 4335 - "address": "string" ~/~/Адрес АЗС 4336 - } 4077 + "3fa85f64-5717-4562-b3fc-2c963f66afa6" ~/~/гуиды топливных карт 4337 4337 4079 + ], 4338 4338 4339 - =(%style="color:#000000; font-size:18.6667px"%)Раздел: (%%)**Методы публичного API для ретрансляторов** =4081 + "timezone": 0 ~/~/Таймзона 4340 4340 4341 - 4342 -== **Получение полных данных о ретрансляторе** == 4343 - 4344 -(% class="box infomessage" %) 4345 -((( 4346 -**GET ** **/api/v3/retranslations/{id}** 4347 -))) 4348 - 4349 -Идентификатор запроса: ID 4350 - 4351 - 4352 -Пример ответа: 4353 - 4354 -{ 4355 -"description": "", ~/~/ Определяет описание 4356 -"subscriberId": "", ~/~/ Подписчик 4357 -"protocolType": 0, ~/~/ Тип протокола 4358 -"isEnabled": true, ~/~/ признак включения, Включен, true - включен, false - отключен 4359 -"address": "string", ~/~/ Адрес события 4360 -"objects": [ ~/~/Объекты для ретрансляции 4361 -{ 4362 -"id": "", ~/~/ Идентификатор объекта ретрансляции 4363 -"name": "", ~/~/ Наименование объекта ретрансляции 4364 -"imei": "", ~/~/ IMEI объекта 4365 -"isEnabled": true ~/~/ признак включения, Включен, true - включен, false - отключен 4366 4366 } 4367 - ], 4368 -"id": "", ~/~/ идентификатор пользователя 4369 -"parentId": "", ~/~/Guid родителя 4370 -"deleted": "" ~/~/ Признак удаления, Включен, true - включен, false - отключен 4371 -} 4372 4372 4373 - 4374 -== **Удаление данных ретранслятора** == 4375 - 4376 -(% class="box infomessage" %) 4377 -((( 4378 -**DELETE** **/api/v3/retranslations/{id}** 4379 -))) 4380 - 4381 -Параметр запроса: ID 4382 - 4383 - 4384 -== **Создание ретранслятора** == 4385 - 4386 -(% class="box infomessage" %) 4387 -((( 4388 -**POST ** **/api/v3/retranslations/{id}** 4389 -))) 4390 - 4391 -Запрос: 4392 - 4393 -{ 4394 -"description": "", ~/~/ Описание 4395 -"subscriberId": "", ~/~/ Подписчик 4396 -"protocolType": 0, ~/~/ Тип протокола 4397 -"address": "", ~/~/ Адрес ретрансляции 4398 -"isEnabled": "", ~/~/ признак включения, Включен, true - включен, false - отключен 4399 -"objects": [ ~/~/Объекты для ретрансляции 4400 -{ 4401 -"id": "", ~/~/ идентификатор пользователя 4402 -"imei": "", ~/~/IMEI объекта 4403 -"isEnabled": "" ~/~/ признак включения, Включен, true - включен, false - отключен 4404 -} 4405 - ] 4406 -} 4407 - 4408 - 4409 4409 Ответ: 4410 4410 4411 -{ 4412 -"description": "string", ~/~/ Определяет описание 4413 -"subscriberId": "", ~/~/ идентификатор запроса 4414 -"protocolType": 0, ~/~/ Тип протокола 4415 -"isEnabled": "", ~/~/ признак включения, Включен, true - включен, false - отключен 4416 -"address": "", ~/~/ Адрес события 4417 -"objects": [ ~/~/Объекты для ретрансляции 4418 -{ 4419 -"id": "", ~/~/ идентификатор пользователя 4420 -"name": "string", ~/~/ Название уведомления 4421 -"imei": "string", ~/~/IMEI объекта 4422 -"isEnabled": true ~/~/ признак включения, Включен, true - включен, false - отключен 4423 -} 4424 - ], 4425 -"id": "", ~/~/ идентификатор пользователя 4426 -"parentId": "", ~/~/ Guid идентификатор родителя 4427 -"deleted": true ~/~/ Признак удаления 4428 -} 4087 + { 4429 4429 4089 + "date": "2024-04-11T10:41:02.265Z", ~/~/Дата и время транзакции 4430 4430 4431 - ==**Редактированиеретранслятора**==4091 + "driver": "string", ~/~/Водители, привязанные к ТК 4432 4432 4433 -(% class="box infomessage" %) 4434 -((( 4435 -**PUT** **/api/v3/retranslations** 4436 -))) 4093 + "object": "string", ~/~/Наименование ТС 4437 4437 4438 - Примерзапроса:4095 + "amount": 0, ~/~/Количество топлива 4439 4439 4440 -{ 4441 -"id": "", ~/~/ идентификатор пользователя 4442 -"description": "string", ~/~/ Определяет описание 4443 -"subscriberId": "", ~/~/ идентификатор запроса 4444 -"protocolType": 0, ~/~/ Тип протокола 4445 -"isEnabled": true, ~/~/ признак включения, Включен, true - включен, false - отключен 4446 -"address": "string", ~/~/ Адрес события 4447 -"objects": ~/~/Объекты для ретрансляции 4448 -[ 4449 -{ 4450 -"id": "", ~/~/ идентификатор пользователя 4451 -"imei": "", ~/~/IMEI объекта 4452 -"isEnabled": true ~/~/ признак включения, Включен, true - включен, false - отключен 4453 -} 4454 - ] 4455 -} 4097 + "amountDut": 0, ~/~/Количество по ДУТ 4456 4456 4099 + "amountDiff": 0, ~/~/Разница, л 4457 4457 4458 - Примерответа:4101 + "amountDiffPerc": 0, ~/~/Разница, % 4459 4459 4460 -{ 4461 -"description": "", ~/~/ Определяет описание 4462 -"subscriberId": "", ~/~/ идентификатор запроса 4463 -"protocolType": 0, ~/~/ Тип протокола 4464 -"isEnabled": true, ~/~/ признак включения, Включен, true - включен, false - отключен 4465 -"address": "string", ~/~/ Адрес события 4466 -"objects": [ ~/~/Объекты для ретрансляции 4467 -{ 4468 -"id": "", ~/~/ идентификатор пользователя 4469 -"name": "string", ~/~/ Название уведомления 4470 -"imei": "", ~/~/IMEI объекта 4471 -"isEnabled": true ~/~/ признак включения, Включен, true - включен, false - отключен 4472 -} 4473 - ], 4474 -"id": "", ~/~/ идентификатор пользователя 4475 -"parentId": "", ~/~/ Guid идентификатор родителя 4476 -"deleted": true ~/~/ Признак удаления 4477 -} 4103 + "summa": 0, ~/~/Стоимость, руб 4478 4478 4105 + "serviceName": "string", ~/~/Тип топлива 4479 4479 4480 - ==**Получениеспискаретранслятораклиента**==4107 + "price": 0, ~/~/Цена за литр, руб 4481 4481 4482 -(% class="box infomessage" %) 4483 -((( 4484 -**POST /api/v3/retranslations/find** 4485 -))) 4109 + "cardName": "string", ~/~/Наименование ТК 4486 4486 4487 - Примерзапроса:4111 + "cardNum": "string", ~/~/Номер ТК 4488 4488 4489 -{ 4490 -"id": "", ~/~/ идентификатор пользователя 4491 -"search": "string", ~/~/Строка поиска. Поиск производится по имени подписчика, описанию, типу протокола и адресу 4492 -"parentId": "" ~/~/ Идентификатор агента, для которого надо получить данные. 4493 -} 4113 + "operator": "string", ~/~/Оператор ТК 4494 4494 4495 - Ответ:4115 + "address": "string" ~/~/Адрес АЗС 4496 4496 4497 -[ 4498 -{ 4499 -"description": "", ~/~/ Определяет описание 4500 -"subscriberId": "", ~/~/ идентификатор запроса 4501 -"protocolType": 0, ~/~/ Тип протокола 4502 -"isEnabled": true, ~/~/ признак включения, Включен, true - включен, false - отключен 4503 -"address": "string", ~/~/ Адрес события 4504 -"id": "", ~/~/ идентификатор пользователя 4505 -"parentId": "", ~/~/ Guid идентификатор родителя 4506 -"deleted": true ~/~/ Признак удаления 4507 -} 4508 -] 4509 - 4510 - 4511 -= (% style="color:#000000; font-size:18.6667px" %)**Раздел: Отчеты**(%%) = 4512 - 4513 -== **API для отчета по выгрузке комбайнов** == 4514 - 4515 -(% class="box infomessage" %) 4516 -((( 4517 -POST **/api/v3/Reports/harvesterUnloading** 4518 -))) 4519 - 4520 -Пример запроса: 4521 - 4522 -{ 4523 - "byTime": 0, ~/~/ Объединение событий по времени 4524 - "byDist": 0, ~/~/ Объединение событий по расстоянию 4525 - "filterByTime": 0, ~/~/ Фильтрация событий по времени нахождения 4526 - "filterByHalfPerimeter": true, ~/~/ Фильтрация событий по пробегу половины периметра 4527 - "showNearestObjects": true, ~/~/Показывать объекты рядом? 4528 - "vehicleIds": [ ~/~/ Список id объектов для анализа 4529 - 0 4530 - ], 4531 - "from": "", ~/~/ Дата и время начало запроса 4532 - "to": "", ~/~/ Дата и время окончания запроса 4533 - "timezone": 0 ~/~/ Временная зона. Если не указана, то по умолчанию UTC+3 4534 -} 4535 - 4536 -Пример ответа: 4537 - 4538 -[ 4539 - { 4540 - "harvesterName": "", ~/~/Комбайн, номер 4541 - "harvesterId": 0, ~/~/Комбайн, id 4542 -"harvesterModel": "", ~/~/ Модель комбайна 4543 -"hopperCapacity": 0, ~/~/ Объем бункера м3 4544 - "hopperDischargeSpeed": 0, ~/~/ Скорость выгрузки из бункера, л/сек 4545 - "events": [ ~/~/Список событий в разрезе комбайна 4546 - { 4547 - "driverId": "", ~/~/Идентификатор водителя 4548 - "driverName": "", ~/~/Водитель комбайна, ФИО 4549 - "RFID": "", ~/~/ идентификатор карты-метки 4550 - "rfidName": "", ~/~/Водитель комбайна, имя метки 4551 - "vehicleId": 0, ~/~/идентификатор объекта 4552 - "vehicleName": "string", ~/~/ Имя объекта 4553 - "modelName": "string", ~/~/ Имя модели объекта 4554 - "nearestVehicles": [ ~/~/Объекты рядом 4555 - { 4556 - "vehicleId": 0, ~/~/идентификатор объекта 4557 - "vehicleName": "string" ~/~/ Имя объекта 4558 - } 4559 - ], 4560 - "fields": [ ~/~/Поля, где происходила выгрузка 4561 - { 4562 - "id": 0, ~/~/ идентификатор пользователя 4563 - "name": "string" ~/~/ имя пользователя 4564 - } 4565 - ], 4566 - "event": "string", ~/~/Событие 4567 - "start": "2024-07-19T06:41:57.821Z", ~/~/ Начало периода 4568 - "end": "2024-07-19T06:41:57.821Z", ~/~/ Окончание периода 4569 - "durationSeconds": 0, ~/~/Продолжительность события, в секундах 4570 - "cultureName": "string", ~/~/ название культуры 4571 - "bunkerLowLevelStart": 0, ~/~/Бункер, нижний уровень (на начало события) 4572 - "bunkerLowLevelEnd": 0, ~/~/ Бункер, нижний уровень (на конец события) 4573 - "bunkerHighLevelStart": 0, ~/~/Бункер, верхний уровень (на начало события) 4574 - "bunkerHighLevelEnd": 0, ~/~/Бункер, верхний уровень (на конец события) 4575 - "reapingAggregateValueStart": 0, ~/~/Жатка (на начало события) 4576 - "reapingAggregateValueEnd": 0, ~/~/Жатка (на конец события) 4577 - "issued": 0, ~/~/Выдано, бункеров 4578 - "issuedByBunkerSensors": 0, ~/~/Отдано бункеров (расчет по датчикам бункера) 4579 - "latitude": 0, ~/~/Широта 4580 - "longitude": 0, ~/~/ Долгота 4581 - "litresAway": 0, ~/~/Отдано, л 4582 - "m3Away": 0 ~/~/Отдано, м3 4583 - } 4584 - ] 4585 4585 } 4586 -] 4587 4587 4588 - 4589 4589 = (% style="color:#000000; font-size:18.6667px" %)Раздел: **Корзина**(%%) = 4590 4590 4591 4591 == (% style="color:#000000; font-size:16px" %)**Запрос на получение списка всех объектов в корзине**(%%) == ... ... @@ -4604,27 +4604,48 @@ 4604 4604 4605 4605 Ответ: 4606 4606 4607 -[ 4137 +[ 4138 + 4608 4608 { 4140 + 4609 4609 "recordTime": "", ~/~/Время записи 4142 + 4610 4610 "userId": "", ~/~/Guid пользователя, добавившего объект в корзину 4144 + 4611 4611 "parentId": "", ~/~/Guid агента объекта, помещённого в корзину 4146 + 4612 4612 "objectId": 0, ~/~/ID объекта, помещённого в корзину 4148 + 4613 4613 "objectGuid": "", ~/~/Guid объекта, помещённого в корзину 4150 + 4614 4614 "objectType": 1, ~/~/Тип объекта, помещённого в корзину 4152 + 4615 4615 "details": { ~/~/Список деталей объекта, помещённого в корзину 4616 - "items": [ ~/~/ 4154 + 4155 + "items": [ ~/~/ [ 4156 + 4617 4617 nullable: true ~/~/Детали 4158 + 4618 4618 { 4160 + 4619 4619 "name": "string", ~/~/наименование столбца 4162 + 4620 4620 "value": "string" ~/~/содержание столбца 4164 + 4621 4621 } 4166 + 4622 4622 ] 4168 + 4623 4623 }, 4624 - "errors": [ ~/~/Список ошибок удаления/восстановления объекта 4170 + 4171 + "errors": [ ~/~/Список ошибок удаления/восстановления объекта 4172 + 4625 4625 "string" 4174 + 4626 4626 ] 4176 + 4627 4627 } 4178 + 4628 4628 ] 4629 4629 4630 4630 ... ... @@ -4639,33 +4639,56 @@ 4639 4639 4640 4640 Пример запроса: 4641 4641 4193 + 4642 4642 [ 4643 -0 4195 + 4196 + 0 4197 + 4644 4644 ] 4645 - 4646 4646 4200 + 4647 4647 Пример ответа: 4648 4648 4649 -[ 4650 -{ 4203 +[ 4204 + 4205 + { 4206 + 4651 4651 "recordTime": "", ~/~/Время записи 4208 + 4652 4652 "userId": "", ~/~/Guid пользователя, добавившего объект в корзину 4210 + 4653 4653 "parentId": "", ~/~/Guid агента объекта, помещённого в корзину 4212 + 4654 4654 "objectId": 0, ~/~/ID объекта, помещённого в корзин 4214 + 4655 4655 "objectGuid": "", ~/~/Guid объекта, помещённого в корзину 4216 + 4656 4656 "objectType": 1, ~/~/Тип объекта, помещённого в корзину 4218 + 4657 4657 "details": { ~/~/Список деталей объекта, помещённого в корзину 4220 + 4658 4658 "items": [ ~/~/Детали 4222 + 4659 4659 { 4224 + 4660 4660 "name": "", ~/~/Имя свойства 4226 + 4661 4661 "value": "" ~/~/Значение свойства 4228 + 4662 4662 } 4230 + 4663 4663 ] 4232 + 4664 4664 }, 4234 + 4665 4665 "errors": [ ~/~/Список ошибок удаления/восстановления объекта 4236 + 4666 4666 "" 4238 + 4667 4667 ] 4240 + 4668 4668 } 4242 + 4669 4669 ] 4670 4670 4671 4671 Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200». ... ... @@ -4688,41 +4688,55 @@ 4688 4688 4689 4689 Пример запроса: 4690 4690 4691 -((( 4692 4692 [ 4693 -))) 4694 4694 4695 -((( 4696 4696 0 4697 -))) 4698 4698 4699 -((( 4700 4700 ] 4701 -))) 4702 4702 4703 4703 4704 4704 Пример ответа: 4705 4705 4706 4706 [ 4707 -{ 4275 + 4276 + { 4277 + 4708 4708 "recordTime": "2024-07-19T07:58:19.305Z", ~/~/Время записи 4279 + 4709 4709 "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/Guid пользователя, добавившего объект в корзину 4281 + 4710 4710 "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/Guid агента объекта, помещённого в корзину 4283 + 4711 4711 "objectId": 0, ~/~/ID объекта, помещённого в корзину 4285 + 4712 4712 "objectGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", ~/~/Guid объекта, помещённого в корзину 4287 + 4713 4713 "objectType": 1, ~/~/Тип объекта, помещённого в корзину 4289 + 4714 4714 "details": { ~/~/Список деталей объекта, помещённого в корзину 4291 + 4715 4715 "items": [ ~/~/Детали 4293 + 4716 4716 { 4295 + 4717 4717 "name": "string", ~/~/Имя свойства 4297 + 4718 4718 "value": "string" ~/~/Значение свойства 4299 + 4719 4719 } 4301 + 4720 4720 ] 4303 + 4721 4721 }, 4305 + 4722 4722 "errors": [ ~/~/Список ошибок удаления/восстановления объекта 4307 + 4723 4723 "string" 4309 + 4724 4724 ] 4311 + 4725 4725 } 4313 + 4726 4726 ] 4727 4727 4728 4728