فیلدهای خودرو را به روز کنید

این سند زمینه های مهم وسیله نقلیه را که می توانید هنگام ایجاد و مدیریت وسایل نقلیه به روز کنید، پوشش می دهد.

  • vehicle_state : در دسترس بودن وسیله نقلیه را برای سفرهای جدید تعیین می کند.
  • vehicle_type : فیلد مورد نیاز هنگام ایجاد وسیله نقلیه. این فیلد همچنین می تواند به عنوان یک معیار فیلتر برای مسابقات خودرو عمل کند. برای جزئیات تنظیم این فیلد به ایجاد وسیله نقلیه مراجعه کنید.
  • attributes[] : یک آرایه اختیاری از نوع VehicleAttribute . از آنها برای تعریف معیارهای سفارشی برای بهبود رفتار فیلتر هنگام جستجو یا فهرست کردن وسایل نقلیه استفاده کنید.

برای یک لیست کامل از فیلدهای خودرو، نگاه کنید به:

زمینه وضعیت خودرو

سیستم شما می تواند وضعیت خودرو را روی OFFLINE یا ONLINE تنظیم کند. برای مثال، ممکن است وضعیت خودرو را هر روز در ساعت 9 صبح روی ONLINE و ساعت 5 بعد از ظهر OFFLINE تنظیم کنید.

حالت آفلاین حالت آنلاین
از OFFLINE برای نشان دادن اینکه وسیله نقلیه سفرهای جدید را نمی پذیرد، استفاده کنید. توجه داشته باشید که خودرو همچنان می تواند سفرهای تعیین شده را در این حالت انجام دهد.
  • Vehicle که در حالت ONLINE ایجاد شده است ممکن است فوراً در پاسخ به سؤالات SearchVehicles بازگردانده شود. برای جزئیات بیشتر به جستجوی وسایل نقلیه مراجعه کنید.
  • وسایل نقلیه ایجاد شده در حالت ONLINE باید از قسمت last_location در تماس CreateVehicle استفاده کنند.

فیلد ویژگی های خودرو

از فیلد attributes خودرو برای ایجاد معیارهای سفارشی استفاده کنید تا به مصرف کنندگان یا اپراتورهای ناوگان خود امکان دهید وسایل نقلیه موجود در ناوگان شما را در طیف گسترده تری از معیارهای جستجو پیدا کنند. این قابلیت‌های برنامه‌های شما را برای ارائه تطابق بهتر خودرو نسبت به آنچه که از معیارهای جستجوی صرفاً بر اساس سایر زمینه‌های خودرو انجام می‌دهید، افزایش می‌دهد. هر وسیله نقلیه می تواند حداکثر 100 ویژگی داشته باشد و هر یک باید یک کلید منحصر به فرد داشته باشد. مقادیر می توانند رشته ها، بولی ها یا اعداد باشند.

به عنوان مثال، می توانید یک ویژگی سفارشی به نام class را برای متمایز کردن وسایل نقلیه اشتراکی خود در سطوح کلاس اعلام کنید. از مقادیر رشته زیر برای نمایش سطوح کلاس خودرو استفاده می کنید: ECONOMY ، STANDARD و LUXURY .

با این حال، مقادیر ویژگی های سفارشی نباید متقابلاً منحصر به فرد باشند. شما ممکن است از معیارهایی مانند دوستدار حیوانات خانگی ، سیگار نکشیدن و امکان سفرهای طولانی تر استفاده کنید. هر یک از اینها می تواند یک ویژگی سفارشی جداگانه باشد که از مقادیر بولی استفاده می کند. یک وسیله نقلیه داده شده می تواند هر سه این ویژگی سفارشی را به همراه صفت سفارشی کلاس به مقدار رشته مناسب اختصاص دهد.

استفاده از ویژگی ها از این طریق می تواند طیف گسترده ای از ویژگی های مفید برای یافتن وسایل نقلیه برای سفرهایی با نیازهای خاص را در اختیار شما قرار دهد. برای دستورالعمل‌های نحوه استفاده از ویژگی‌های سفارشی به عنوان فیلترهای جستجو، به جستجوی وسایل نقلیه مراجعه کنید.

ویژگی های خودرو را به روز کنید

می توانید ویژگی های خودرو را با استفاده از UpdateVehicle یا UpdateVehicleAttributes به روز کنید. هر کلید attributes فقط می تواند یک مقدار در هر وسیله نقلیه داشته باشد. شما ویژگی های خودروی سفارشی را با استفاده از attributes موجود در ماسک فیلد، و سپس ارائه مقادیر بر اساس روش زیر اعلام می کنید.

UpdateVehicle UpdateVehicleAttributes
این API اجازه به روز رسانی تنها یک ویژگی را نمی دهد. هنگام استفاده از این روش، هرگونه استفاده از فیلد attributes در ماسک فیلد منجر به اعلام مجدد کل مجموعه ویژگی های خودرو برای وسیله نقلیه می شود. این منجر به بازنویسی هر ویژگی از قبل موجود می شود که به صراحت در ماسک فیلد گنجانده نشده است. اگر از این روش برای اعلام یک ویژگی سفارشی جدید استفاده می‌کنید، باید هر ویژگی سفارشی را که می‌خواهید خودرو حفظ کند، مجدداً اعلام کنید. اگر attributes در ماسک فیلد را حذف کنید، این روش ویژگی‌های سفارشی موجود را همانطور که قبلاً برای خودرو تعریف شده است، باقی می‌گذارد. اگر attributes در ماسک فیلد استفاده می‌کنید، اما بدون تنظیم مقادیر، این معادل حذف تمام ویژگی‌های سفارشی از وسیله نقلیه است. این روش لیست خاصی از ویژگی ها را برای به روز رسانی می پذیرد. درخواست فقط آن ویژگی هایی را که در فیلد ماسک مشخص شده اند به روز می کند یا اضافه می کند. ویژگی های از قبل موجود که مشخص نشده اند بدون تغییر باقی می مانند.

نمونه فیلدهای خودرو را به روز کنید

این بخش نحوه به‌روزرسانی فیلدهای خودرو را با استفاده از UpdateVehicleRequest نشان می‌دهد که شامل یک update_mask برای نشان دادن اینکه کدام فیلدها باید به‌روزرسانی شوند. برای جزئیات به مستندات Protocol Buffers در زمینه ماسک‌ها مراجعه کنید.

به‌روزرسانی‌های فیلدهایی غیر از last_location به امتیازات مدیر Fleet Engine On-demand نیاز دارد.

مثال: نوع سفر جدید و ویژگی سفارشی را فعال کنید

این مثال سفرهای back_to_back را برای وسیله نقلیه فعال می کند و همچنین یک ویژگی جدید را مشخص می کند: class . همانطور که قبلاً در به‌روزرسانی ویژگی‌های خودرو ذکر شد، به‌روزرسانی فیلد attributes با استفاده از این رویکرد، شما را ملزم می‌کند که تمام ویژگی‌های سفارشی را که می‌خواهید حفظ کنید، نشان دهید. بنابراین مثال یک مقدار cash_only را نشان می‌دهد که نوشته شده است تا از بازنویسی آن در طول عملیات به‌روزرسانی که فیلد attributes را مشخص می‌کند، محافظت کند.

برای به‌روزرسانی فقط مقدار یک جفت ویژگی کلید-مقدار، به جای آن از روش UpdateVehicleAttributes استفاده کنید و فیلد attribute را در ماسک فیلد برای درخواست UpdateVehicle وارد نکنید.

برای gRPC و REST به مرجع providers.vehicles.update مراجعه کنید.

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

بعدش چی