|
Tài liệu này đề cập đến các trường quan trọng về xe mà bạn có thể cập nhật khi tạo và quản lý xe.
|
Để xem danh sách đầy đủ các trường về xe, hãy xem:
|
Trường trạng thái xe
Hệ thống của bạn có thể đặt trạng thái xe thành OFFLINE hoặc ONLINE. Ví dụ: bạn có thể đặt trạng thái xe thành ONLINE vào lúc 9 giờ sáng hằng ngày và OFFLINE vào lúc 5 giờ chiều hằng ngày.
| Chế độ NGOẠI TUYẾN | Chế độ TRỰC TUYẾN |
|---|---|
Sử dụng OFFLINE để cho biết rằng một xe không chấp nhận chuyến đi mới. Xin lưu ý rằng xe vẫn có thể hoàn thành các chuyến đi được chỉ định khi ở trạng thái này. |
|
Trường thuộc tính xe
Sử dụng trường attributes của xe để tạo tiêu chí tuỳ chỉnh, giúp người tiêu dùng hoặc nhà điều hành đội xe tìm thấy xe trong đội xe của bạn theo nhiều tiêu chí tìm kiếm hơn. Điều này giúp nâng cao khả năng của ứng dụng trong việc cung cấp kết quả phù hợp hơn về xe so với việc bạn sử dụng tiêu chí tìm kiếm chỉ dựa trên các trường khác về xe. Mỗi xe có thể có tối đa 100 thuộc tính và mỗi thuộc tính phải có một khoá riêng biệt. Giá trị có thể là chuỗi, boolean hoặc số.
Ví dụ: bạn có thể khai báo một thuộc tính tùy chỉnh có tên là class để phân biệt các xe đi chung theo cấp độ. Bạn sẽ sử dụng các giá trị chuỗi sau để biểu thị cấp độ của loại xe: ECONOMY, STANDARD và LUXURY.
Tuy nhiên, các giá trị thuộc tính tùy chỉnh không nhất thiết phải loại trừ lẫn nhau. Bạn có thể sử dụng các tiêu chí như cho phép mang theo thú cưng, không hút thuốc và có thể thực hiện các chuyến đi dài hơn. Mỗi thuộc tính này có thể là một thuộc tính tùy chỉnh riêng biệt sử dụng các giá trị boolean. Một chiếc xe nhất định có thể được chỉ định cả ba thuộc tính tùy chỉnh này cùng với thuộc tính tùy chỉnh class được đặt thành giá trị chuỗi thích hợp.
Việc sử dụng các thuộc tính theo cách này có thể cung cấp cho bạn nhiều tính năng hữu ích để tìm xe cho các chuyến đi có nhu cầu cụ thể. Để biết hướng dẫn về cách sử dụng thuộc tính tuỳ chỉnh làm bộ lọc truy vấn, hãy xem phần Tìm xe.
Cập nhật thuộc tính xe
Bạn có thể cập nhật các thuộc tính của xe bằng UpdateVehicle hoặc UpdateVehicleAttributes. Mỗi khoá attributes chỉ có thể có một giá trị cho mỗi
xe. Bạn khai báo các thuộc tính tuỳ chỉnh của xe bằng cách sử dụng attributes
trong mặt nạ trường, sau đó cung cấp giá trị dựa trên phương thức bên dưới.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
API này không cho phép chỉ cập nhật một thuộc tính. Khi sử dụng phương thức này, mọi trường hợp sử dụng trường attributes trong mặt nạ trường đều dẫn đến việc toàn bộ tập hợp thuộc tính của xe được khai báo lại cho xe. Điều này dẫn đến việc ghi đè mọi thuộc tính có sẵn không được đưa vào mặt nạ trường một cách rõ ràng. Nếu sử dụng phương thức này để khai báo một thuộc tính tuỳ chỉnh mới,
bạn cũng phải khai báo lại mọi thuộc tính tuỳ chỉnh mà bạn muốn xe
giữ lại. Nếu bạn loại trừ attributes trong mặt nạ trường, thì phương thức này sẽ giữ nguyên các thuộc tính tuỳ chỉnh hiện có như đã xác định trước đó cho xe. Nếu bạn sử dụng attributes trong mặt nạ trường nhưng không đặt giá trị, thì việc này tương đương với việc xoá tất cả thuộc tính tuỳ chỉnh khỏi xe.
|
Phương thức này chấp nhận một danh sách cụ thể gồm các thuộc tính cần cập nhật. Yêu cầu này chỉ cập nhật hoặc thêm những thuộc tính được chỉ định trong mặt nạ trường. Các thuộc tính có sẵn không được chỉ định sẽ không thay đổi. |
Ví dụ về cách cập nhật các trường của xe
Phần này trình bày cách cập nhật các trường của xe bằng UpdateVehicleRequest, trong đó có update_mask để cho biết những trường cần cập nhật. Hãy xem tài liệu về Vùng đệm giao thức trên mặt nạ trường để biết thông tin chi tiết.
Để cập nhật các trường khác ngoài last_location, bạn cần có đặc quyền Quản trị viên theo yêu cầu của Fleet Engine.
Ví dụ: bật loại chuyến đi mới và thuộc tính tuỳ chỉnh
Ví dụ này cho phép back_to_back chuyến đi cho xe và cũng chỉ định một thuộc tính mới: class. Như đã lưu ý trong phần Cập nhật thuộc tính xe ở trên, để cập nhật trường attributes bằng phương pháp này, bạn phải cho biết tất cả thuộc tính tùy chỉnh mà bạn muốn giữ lại. Do đó, ví dụ này cho thấy một giá trị cash_only được ghi để giữ nguyên giá trị đó, không bị ghi đè trong một thao tác cập nhật chỉ định trường attributes.
Để chỉ cập nhật giá trị của một cặp thuộc tính khoá-giá trị, hãy sử dụng phương thức UpdateVehicleAttributes và không đưa trường attribute vào mặt nạ trường cho yêu cầu UpdateVehicle.
Hãy xem tài liệu tham khảo providers.vehicles.update cho gRPC và 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