|
تتناول هذه المستندات حقول المركبات المهمة التي يمكنك تعديلها عند إنشاء المركبات وإدارتها.
|
للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى الرجوع إلى:
|
حقل "حالة المركبة"
يمكن لنظامك ضبط حالة المركبة على OFFLINE أو ONLINE. على سبيل المثال، يمكنك ضبط حالة المركبة على ONLINE كل يوم في الساعة 9 صباحًا وOFFLINE كل يوم في الساعة 5 مساءً.
| وضع عدم الاتصال بالإنترنت | وضع الاتصال بالإنترنت |
|---|---|
استخدِم OFFLINE للإشارة إلى أنّ المركبة لا تقبل
رحلات جديدة. يُرجى العِلم أنّه لا يزال بإمكان المركبة إكمال الرحلات المخصّصة لها في هذه الحالة. |
|
حقل "سمات المركبة"
استخدِم حقل attributes للمركبة لإنشاء معايير مخصّصة تتيح للمستهلكين أو مشغّلي أسطول المركبات العثور على المركبات في أسطولك باستخدام مجموعة أوسع من معايير البحث. يؤدي ذلك إلى تحسين إمكانات تطبيقاتك لتوفير أفضل المركبات المطابقة مقارنةً بما يمكنك الحصول عليه من استخدام معايير البحث المستندة فقط إلى حقول المركبات الأخرى. يمكن أن تتضمّن كل مركبة 100 سمة على الأكثر، ويجب أن يكون لكل سمة مفتاح فريد. يمكن أن تكون القيم سلاسل أو قيمًا منطقية أو أرقامًا.
على سبيل المثال، يمكنك تحديد سمة مخصّصة باسم class للتمييز بين مركبات مشاركة الرحلات حسب مستويات الفئة. يمكنك استخدام قيم السلسلة التالية لتمثيل مستويات فئة المركبة: ECONOMY وSTANDARD وLUXURY.
ومع ذلك، ليس من الضروري أن تكون قيم السمات المخصّصة غير متكرّرة. يمكنك استخدام معايير مثل pet-friendly وnon-smoking وable to take longer trips. يمكن أن تكون كلّ من هذه المعايير سمة مخصّصة منفصلة تستخدم قيمًا منطقية. يمكن تخصيص كل هذه السمات المخصّصة الثلاث لمركبة معيّنة، بالإضافة إلى السمة المخصّصة class التي تم ضبطها على قيمة السلسلة المناسبة.
يمكن أن يوفّر لك استخدام السمات بهذه الطريقة مجموعة كبيرة من الميزات المفيدة للعثور على المركبات للرحلات التي تتضمّن احتياجات محدّدة. للحصول على تعليمات حول كيفية استخدام السمات المخصّصة كفلاتر لطلبات البحث، يُرجى الاطّلاع على مقالة البحث عن المركبات.
تعديل سمات المركبة
يمكنك تعديل سمات المركبة باستخدام UpdateVehicle أو
UpdateVehicleAttributes. يمكن أن يتضمّن كل مفتاح من attributes قيمة واحدة فقط لكل مركبة. يمكنك تحديد سمات المركبة المخصّصة باستخدام attributes في قناع الحقل، ثم تقديم القيم استنادًا إلى الطريقة أدناه.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
لا يسمح هذا واجهة برمجة التطبيقات بتعديل سمة واحدة فقط. عند استخدام
هذه الطريقة، يؤدي أي استخدام لحقل attributes
في قناع الحقل إلى إعادة تحديد المجموعة الكاملة من
سمات المركبة. يؤدي ذلك إلى استبدال أي سمة سبق تحديدها ولم يتم تضمينها صراحةً في قناع الحقل. إذا كنت تستخدم هذه الطريقة لتحديد سمة مخصّصة جديدة،
يجب أيضًا إعادة تحديد كل سمة مخصّصة تريد أن تحتفظ بها المركبة إذا استبعدت attributes في قناع الحقل، ستترك هذه الطريقة السمات المخصّصة الحالية كما تم تحديدها سابقًا للمركبة. إذا كنت تستخدم attributes في قناع الحقل، ولكن بدون ضبط القيم، يكون ذلك مكافئًا لإزالة جميع السمات المخصّصة من المركبة.
|
تقبل هذه الطريقة قائمة محدّدة من السمات لتعديلها. لا يعدّل الطلب أو يضيف إلا السمات المحدّدة في قناع الحقل. تبقى السمات التي سبق تحديدها ولم يتم تحديدها بدون تغيير بدون تغيير. |
مثال على تعديل حقول المركبة
يوضّح هذا القسم كيفية تعديل حقول المركبة باستخدام UpdateVehicleRequest، الذي يتضمّن update_mask للإشارة إلى الحقول التي سيتم تعديلها. لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات
Protocol Buffers حول أقنعة الحقول.
تتطلّب تعديلات الحقول الأخرى غير last_location امتيازات مشرف Fleet Engine عند الطلب.
مثال: تفعيل نوع رحلة جديد وسمة مخصّصة
يُفعِّل هذا المثال رحلات 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