|
يتناول هذا المستند حقول المركبات المهمة التي يمكنك تعديلها عند إنشاء المركبات وإدارتها.
|
للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى مراجعة:
|
حقل حالة المركبة
يمكن لنظامك ضبط حالة المركبة على "OFFLINE" أو "ONLINE". على سبيل المثال، يمكنك ضبط حالة المركبة على ONLINE كل يوم في الساعة 9 صباحًا وOFFLINE كل يوم في الساعة 5 مساءً.
| وضع عدم الاتصال بالإنترنت | وضع "على الإنترنت" |
|---|---|
استخدِم OFFLINE للإشارة إلى أنّ المركبة لا تقبل
رحلات جديدة. يُرجى العِلم أنّ المركبة يمكنها إكمال الرحلات المحدّدة لها أثناء
وجودها في هذه الحالة. |
|
حقل سمات المركبات
استخدِم حقل "المركبة" attributes لإنشاء معايير مخصّصة تتيح للمستهلكين أو مشغّلي الأساطيل العثور على المركبات في أسطولك من خلال مجموعة متنوعة من معايير البحث. يؤدي ذلك إلى تحسين إمكانات تطبيقاتك لتقديم نتائج مطابقة أفضل للمركبات مقارنةً بما يمكنك الحصول عليه من استخدام معايير البحث المستندة فقط إلى حقول المركبات الأخرى. يمكن أن تحتوي كل مركبة على 100 سمة كحدّ أقصى، ويجب أن يكون لكلّ سمة مفتاح فريد. يمكن أن تكون القيم سلاسل أو قيمًا منطقية أو أرقامًا.
على سبيل المثال، يمكنك تحديد سمة مخصّصة باسم class للتمييز بين مركبات النقل المشترك حسب مستويات الفئة. يمكنك استخدام قيم السلسلة التالية لتمثيل مستويات فئة المركبة: ECONOMY وSTANDARD وLUXURY.
ومع ذلك، ليس من الضروري أن تكون قيم السمات المخصّصة متنافية. يمكنك استخدام معايير مثل يسمح باصطحاب الحيوانات الأليفة وممنوع التدخين وقادر على القيام برحلات أطول. يمكن أن يكون كلّ من هذه السمات سمة مخصّصة منفصلة تستخدم قيمًا منطقية. يمكن تخصيص هذه السمات المخصّصة الثلاث لمركبة معيّنة بالإضافة إلى السمة المخصّصة class التي تم ضبطها على قيمة السلسلة المناسبة.
يمكن أن يوفّر لك استخدام السمات بهذه الطريقة مجموعة متنوعة من الميزات المفيدة للعثور على مركبات للرحلات ذات الاحتياجات المحدّدة. للحصول على تعليمات حول كيفية استخدام السمات المخصّصة كفلاتر لطلبات البحث، يُرجى الاطّلاع على البحث عن المركبات.
تعديل سمات المركبة
يمكنك تعديل سمات المركبات باستخدام UpdateVehicle أو
UpdateVehicleAttributes. يمكن أن يكون لكل مفتاح attributes قيمة واحدة فقط لكل مركبة. يمكنك تحديد سمات المركبات المخصّصة باستخدام attributes
في قناع الحقل، ثم تقديم القيم استنادًا إلى الطريقة أدناه.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
لا تسمح واجهة برمجة التطبيقات هذه بتعديل سمة واحدة فقط. عند استخدام
هذه الطريقة، يؤدي أي استخدام لحقل 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.
يمكنك الاطّلاع على مرجع 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.
REST
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