تعديل حقول المركبات

يتناول هذا المستند حقول المركبات المهمة التي يمكنك عند إنشاء المركبات وإدارتها.

  • vehicle_state: لتحديد مدى توفّر المركبة لرحلات جديدة.
  • vehicle_type: حقل مطلوب عند إنشاء مركبة ويمكن أن يكون هذا الحقل أيضًا بمثابة معايير تصفية للمركبات المطابقة. عرض إنشاء مركبة للحصول على تفاصيل حول إعداد هذا الحقل.
  • attributes[]: مصفوفة اختيارية من النوع VehicleAttribute استخدام لتحديد معايير مخصصة لتحسين سلوك التصفية عند البحث عن المركبات أو إدراجها.
 

للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى الاطّلاع على ما يلي:

حقل حالة المركبة

يمكن أن يضبط النظام حالة المركبة على OFFLINE أو ONLINE. على سبيل المثال، قد يتم ضبط حالة المركبة على ONLINE كل يوم عند الساعة 9 صباحًا وOFFLINE كل يوم. الساعة 5 مساءً.

وضع عدم الاتصال بالإنترنت وضع الاتصال
استخدِم OFFLINE للإشارة إلى أنّه لا يتم قبول المركبة. لرحلات جديدة. يُرجى العِلم أنّه سيظلّ بإمكان المركبة إكمال الرحلات المخصّصة لها في هذه الحالة.
  • قد يتم على الفور إرجاع Vehicle التي تم إنشاؤها في الحالة ONLINE في الرد على SearchVehicles طلب بحث. يُرجى الاطّلاع على مقالة البحث عن مركبات. لمزيد من التفاصيل.
  • إنّ المركبات التي يتم إنشاؤها في الولاية ONLINE يجب أن تستخدم last_location. في طلب CreateVehicle.

حقل سمات المركبة

استخدِم حقل المركبة attributes لإنشاء معايير مخصّصة من أجل تفعيل مستهلكين أو مشغلي أسطول للعثور على مركبات في أسطولك عبر معايير البحث المتنوعة. يعزز هذا إمكانات تطبيقاتك تقديم مطابقات أفضل للمركبات مقارنةً بما يمكنك البحث عنه باستخدام معايير البحث فقط بالاستناد إلى حقول المركبات الأخرى. لا يمكن أن يزيد عدد مركبات كل مركبة عن 100 السمات، ويجب أن يكون لكل واحدة مفتاح فريد. يمكن أن تكون القيم سلاسل، أو القيم المنطقية أو الأرقام.

على سبيل المثال، يمكنك تعريف سمة مخصصة تُسمى class بـ التمييز بين المركبات المشتركة في رحلاتك بين مستويات الفصل. يمكنك استخدام قيم السلسلة التالية لتمثيل مستويات فئة المركبة: ECONOMY، STANDARD وLUXURY

ومع ذلك، ليس من الضروري أن تكون قيم السمات المخصّصة حصرية بشكل متبادل. قد تريد تستخدم معايير مثل السماح باصطحاب الحيوانات الأليفة وعدم التدخين ويمكن أن تستغرق وقتًا أطول الرحلات. يمكن أن يكون كل منها سمة مخصصة منفصلة تستخدم قيمة منطقية القيم. يمكن تخصيص جميع هذه السمات المخصّصة الثلاث لمركبة معيّنة مع سمة class المخصّصة التي يتم ضبطها على قيمة السلسلة المناسبة.

يمكن أن يوفر لك استخدام السمات بهذه الطريقة مجموعة متنوعة من الميزات المفيدة العثور على مركبات للرحلات ذات الاحتياجات الخاصة. للحصول على تعليمات حول كيفية لاستخدام سمات مخصّصة كفلاتر طلبات البحث، اطّلِع على القسم البحث عن مركبات.

تعديل سمات المركبة

يمكنك تعديل سمات المركبة باستخدام إما UpdateVehicle أو UpdateVehicleAttributes يمكن أن يحتوي كل مفتاح attributes على قيمة واحدة فقط لكلّ المركبة. أنت تعلن عن سمات مخصّصة للمركبات باستخدام attributes في قناع الحقل، ثم تقديم القيم بناءً على الطريقة أدناه.

UpdateVehicle UpdateVehicleAttributes
لا تتيح واجهة برمجة التطبيقات هذه تعديل سمة واحدة فقط. عند استخدام لهذه الطريقة، أي استخدام لـ attributes في نتائج قناع الحقل المجموعة بالكامل سمات المركبة التي تتم إعادة الإفصاح عنها ينتج عن ذلك استبدال أي سمة موجودة مسبقًا وغير مُضمَّنة بشكل صريح في قناع الحقل. إذا استخدمت هذه الطريقة للإعلان عن سمة مخصّصة جديدة، عليك أيضًا إعادة الإفصاح عن كل سمة مخصّصة تريد أن تكون المركبة. الاحتفاظ بها. إذا استبعدت attributes في قناع الحقل، فإن هذه الطريقة تترك السمات المخصصة الحالية كما هو محدّد سابقًا للمركبة. إذا كنت تستخدم attributes في قناع الحقل، ولكن بدون ضبط قيم، ما يعادل إزالة جميع القيم المخصصة الخاصة بالمركبة. تقبل هذه الطريقة قائمة معيّنة بالسمات تحديث. يعدّل الطلب أو يضيف فقط تلك السمات المحددة. في قناع الحقل. تظل السمات الموجودة مسبقًا وغير المحددة بدون تعديل.

مثال على تعديل حقول المركبات

يعرض هذا القسم كيفية تعديل حقول المركبات باستخدام "UpdateVehicleRequest". الذي يتضمن update_mask للإشارة إلى الحقول التي يجب تعديلها. يمكنك الاطّلاع على مستندات مخازن البروتوكولات المؤقتة حول أقنعة الحقول لمعرفة التفاصيل

تتطلّب التعديلات على الحقول غير last_location استخدام Fleet Engine On عند الطلب. امتيازات المشرف.

مثال: تفعيل نوع الرحلة الجديد والسمة المخصّصة

يتيح هذا المثال 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

الخطوات التالية