|
این سند فیلدهای مهم خودرو را که میتوانید هنگام ایجاد و مدیریت خودروها بهروز کنید پوشش میدهد.
|
برای فهرست کامل فیلدهای خودرو، به این بخش مراجعه کنید:
|
فیلد وضعیت خودرو
سیستم شما میتواند وضعیت خودرو را روی OFFLINE یا ONLINE تنظیم کند. برای مثال، میتوانید وضعیت خودرو را هر روز ساعت ۹ صبح روی ONLINE و هر روز ساعت ۵ بعدازظهر روی OFFLINE تنظیم کنید.
| حالت آفلاین | حالت آنلاین |
|---|---|
از OFFLINE برای نشان دادن اینکه خودرو سفر جدید نمیپذیرد استفاده کنید. توجه داشته باشید که خودرو همچنان میتواند سفرهای واگذارشده را در این وضعیت تکمیل کند. |
|
فیلد مشخصههای خودرو
از فیلد attributes خودرو برای ایجاد معیارهای سفارشیشده استفاده کنید تا مصرفکنندگان یا اپراتورهای ناوگان شما بتوانند خودروها را در ناوگان شما در طیف گستردهتری از معیارهای جستجو پیدا کنند. این کار قابلیتهای برنامههایتان را برای ارائه خودروهای منطبق بهتر نسبتبه آنچه از معیارهای جستجو براساس فیلدهای دیگر خودرو بهدست میآورید بهبود میبخشد. هر خودرو میتواند حداکثر ۱۰۰ مشخصه داشته باشد و هر مشخصه باید کلید یکتایی داشته باشد. مقادیر میتوانند رشته،
بولی، یا عدد باشند.
برای مثال، میتوانید مشخصه سفارشیای بهنام class (کلاس) تعریف کنید تا
وسایل نقلیه همسفریتان را براساس سطح کلاس متمایز کنید. از مقادیر رشتهای زیر برای نشان دادن سطوح کلاس خودرو استفاده میکنید: ECONOMY، STANDARD، و LUXURY.
بااینحال، مقادیر مشخصه سفارشی لازم نیست مانعهالجمع باشند. میتوانید از معیارهایی مثل حیوانخانگیپذیر، غیرسیگاری، و امکان رفتن به سفرهای طولانیتر استفاده کنید. هرکدام از اینها میتواند مشخصه سفارشی جداگانهای باشد که از مقادیر بولی استفاده میکند. هر سه این مشخصههای سفارشی را میتوان به یک خودرو اختصاص داد و مشخصه سفارشی class را نیز میتوان روی مقدار رشتهای مناسب تنظیم کرد.
استفاده از مشخصهها به این روش میتواند طیف گستردهای از ویژگیهای مفید را برای پیدا کردن خودروهای مناسب برای سفرهایی با نیازهای خاص دراختیارتان قرار دهد. برای دستورالعملهای نحوه استفاده از مشخصههای سفارشی بهعنوان فیلترهای پُرسمان، به جستجوی خودروها مراجعه کنید.
بهروزرسانی مشخصههای خودرو
میتوانید مشخصههای خودرو را بااستفاده از UpdateVehicle یا
UpdateVehicleAttributes بهروز کنید. هر کلید attributes فقط میتواند یک مقدار بهازای هر
خودرو داشته باشد. مشخصههای سفارشی خودرو را بااستفاده از attributes
در ماسک فیلد اعلام میکنید و سپس مقادیر را براساس روش زیر ارائه میدهید.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
این API اجازه نمیدهد فقط یک مشخصه بهروز شود. هنگام استفاده از
این روش، هرگونه استفاده از فیلد attributes
در ماسک فیلد منجر به بازاعلام کل مجموعه
مشخصههای خودرو برای خودرو میشود. این امر منجر به بازنویسی هر مشخصه ازپیش موجودی میشود که بهطور صریح در ماسک فیلد گنجانده نشده است. اگر از این روش برای اعلام مشخصه سفارشی جدیدی استفاده میکنید،
باید هر مشخصه سفارشی را که میخواهید خودرو حفظ کند
دوباره اعلام کنید. اگر attributes را در ماسک فیلد مستثنی کنید،
این روش مشخصههای سفارشی موجود را همانطور که قبلاً برای خودرو تعریف شده است
باقی میگذارد. اگر از attributes در ماسک فیلد استفاده کنید،
اما مقادیر را تنظیم نکنید، این کار معادل برداشتن همه مشخصههای سفارشی
از خودرو است.
|
این روش فهرست خاصی از مشخصهها را برای بهروزرسانی میپذیرد. درخواست فقط آن ویژگیهایی را بهروزرسانی یا اضافه میکند که در ماسک فیلد مشخص شدهاند. مشخصههای ازپیش موجود که مشخص نشدهاند بدون تغییر باقی میمانند. |
نمونه بهروزرسانی فیلدهای خودرو
این بخش نحوه بهروزرسانی فیلدهای وسیله نقلیه را بااستفاده از UpdateVehicleRequest نشان میدهد،
که شامل update_mask برای نشان دادن فیلدهایی است که باید بهروزرسانی شوند. برای جزئیات بیشتر،
سند «میانگیری پروتکل» درباره ماسکهای فیلد را ببینید.
بهروزرسانی فیلدهای غیراز last_location به امتیازهای سرپرست Fleet Engine On-demand نیاز دارد.
مثال: فعال کردن نوع سفر جدید و مشخصه سفارشی
این مثال سفرهای back_to_back را برای خودرو فعال میکند و همچنین مشخصه جدیدی را تعیین میکند: class. همانطور که قبلاً در بهروزرسانی مشخصههای خودرو اشاره شد،
بهروزرسانی فیلد attributes بااستفاده از این رویکرد مستلزم این است که همه
مشخصههای سفارشی را که میخواهید حفظ کنید مشخص کنید. بنابراین، این مثال مقدار cash_only را نشان میدهد که برای جلوگیری از رونویسی شدن آن درطول عملیات بهروزرسانی که فیلد attributes را مشخص میکند نوشته شده است.
برای بهروزرسانی فقط مقدار یک جفت مشخصه کلید-مقدار، بهجای آن از روش
UpdateVehicleAttributes استفاده کنید و فیلد attribute را
در ماسک فیلد برای درخواست UpdateVehicle لحاظ نکنید.
مرجع providers.vehicles.update را برای gRPC و REST ببینید.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
استراحت
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM