Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 34 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# AIS-140

[中文](./README_ZH.md) | English

## Introduction

This is based on QuecPython.
Expand All @@ -25,7 +27,7 @@ def server_cmd(cmd, key, val):

Args:
cmd(str): SET/GET/CLR.
key(str):
key(str):
PIP - Primary Server IP
PPT - Primary Server Port
SIP - Secondary Server IP
Expand Down Expand Up @@ -64,8 +66,8 @@ def main():

# Send Health Monitoring Packet
hbt_kwargs = {...}
res = ais_client.send_heart_beat(**hbt_kwargs)
print("ais_client.send_heart_beat() %s" % res)
res = ais_client.send_health_monitoring(**hbt_kwargs)
print("ais_client.send_health_monitoring() %s" % res)

# Send Location/Alert Information Packet
lai_kwargs = {...}
Expand All @@ -92,8 +94,11 @@ def main():
|-- ais_client_demo.py
|-- ais_server_demo.py
|-- docs
|-- en
|-- API_Reference.md
|-- zh
|-- API参考手册.md
|-- AIS-140 (2016).pdf
|-- VT140-Protocol_V1._20200104.pdf
```

- `code` floder is incloud AIS client codes.
Expand All @@ -102,7 +107,7 @@ def main():
- `demo` floder is incloud AIS client demo and AIS server demo.
- `demo/ais_client_demo.py` is an AIS client demo base on QuecPython.
- `demo/ais_server_demo.py` is an AIS server demo base on CPython.
- `docs` floder is incloud AIS-140 protocal documents.
- `docs` floder is incloud AIS-140 protocal documents and API reference.

## How To Use

Expand Down Expand Up @@ -179,3 +184,27 @@ You can see log `ais_client.send_login() True.` in our QPYcom REPL, than the `Lo
**Note:**

> You can refer to `demo/ais_client_demo.py` to write client requests that conform to business logic.

## Usage

- [API Reference Manual](./docs/en/API_Reference.md)
- [Client Example Code](./demo/ais_client_demo.py)
- [Server Example Code](./demo/ais_server_demo.py)

## Contribution

We welcome contributions to improve this project! Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/your-feature`).
3. Commit your changes (`git commit -m 'Add your feature'`).
4. Push to the branch (`git push origin feature/your-feature`).
5. Open a Pull Request.

## License

This project is licensed under the Apache License. See the [LICENSE](./LICENSE) file for details.

## Support

If you have any questions or need support, please refer to the [QuecPython documentation](https://python.quectel.com/doc/en) or open an issue in this repository.
38 changes: 38 additions & 0 deletions README_ZH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# AIS-140

中文 | [English](./README.md)

## 概述

AIS-140,全称 AUTOMOTIVE INDUSTRY STANDARD,汽车行业标准,是印度制定的一套针对车载卫星定位系统的通信协议。该协议主要用于道路车辆的卫星定位设备与后台监控中心之间的数据通讯,支持车辆定位、跟踪、应急救援等功能。它由印度汽车工业标准委员会 (AISC) 制定,印度汽车研究协会(ARAI)发布,是印度智能交通系统(ITS)的重要组成部分。

本项目基于 QuecPython 语言开发。

目前支持的版本为 AIS-140 (2016)。

该库的目的是提供构建车辆位置跟踪和紧急按钮的构建块。 **该库不提供完整的解决方案,因为任何实现都是特定于其预期用途的**。该库中的文档提供了有关如何最好地构建完整解决方案的指导。

## 用法

- [API 参考手册](./docs/zh/API参考手册.md)
- [用户使用手册](./docs/zh/用户使用手册.md)
- [客户端示例代码](./demo/ais_client_demo.py)
- [服务端示例代码](./demo/ais_server_demo.py)

## 贡献

我们欢迎对本项目的改进做出贡献!请按照以下步骤进行贡献:

1. Fork 此仓库。
2. 创建一个新分支(`git checkout -b feature/your-feature`)。
3. 提交您的更改(`git commit -m 'Add your feature'`)。
4. 推送到分支(`git push origin feature/your-feature`)。
5. 打开一个 Pull Request。

## 许可证

本项目使用 Apache 许可证。详细信息请参阅 [LICENSE](./LICENSE) 文件。

## 支持

如果您有任何问题或需要支持,请参阅 [QuecPython 文档](https://python.quectel.com/doc) 或在本仓库中打开一个 issue。
14 changes: 7 additions & 7 deletions code/ais.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,11 +434,11 @@ def parse(self, msg):
msg = msg.encode()
return msg

def send_login(self, vender_id, device_name, imei, firmware_version, protocal_version, latitude,
def send_login(self, vender_id, vehicle_reg_no, imei, firmware_version, protocal_version, latitude,
latitude_dir, longitude, longtiude_dir):
kwgs = {
"vender_id": vender_id,
"device_name": device_name,
"vehicle_reg_no": vehicle_reg_no,
"imei": imei,
"firmware_version": firmware_version,
"protocal_version": protocal_version,
Expand All @@ -447,14 +447,14 @@ def send_login(self, vender_id, device_name, imei, firmware_version, protocal_ve
"longitude": longitude,
"longtiude_dir": longtiude_dir
}
msg = "$,LGN,{vender_id},{device_name},{imei},{firmware_version},{protocal_version}," \
msg = "$,LGN,{vender_id},{vehicle_reg_no},{imei},{firmware_version},{protocal_version}," \
"{latitude},{latitude_dir},{longitude},{longtiude_dir}*".format(**kwgs)
return self.__send_msg(msg)

def send_heart_beat(self, vender_id, firmware_version, imei, battery_percentage,
Low_battery_threshold_value, memory_percentage,
data_update_rate_when_ignition_on, data_update_rate_when_ignition_off,
digital_io_status, analog_io_status):
def send_health_monitoring(self, vender_id, firmware_version, imei, battery_percentage,
Low_battery_threshold_value, memory_percentage,
data_update_rate_when_ignition_on, data_update_rate_when_ignition_off,
digital_io_status, analog_io_status):
kwgs = {
"vender_id": vender_id,
"firmware_version": firmware_version,
Expand Down
8 changes: 4 additions & 4 deletions demo/ais_client_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def server_cmd(cmd, key, val):
# Send Login Packet
login_kwargs = {
"vender_id": "QUECTEL",
"device_name": "AISTRACKER",
"vehicle_reg_no": "car123456",
"imei": modem.getDevImei(),
"firmware_version": modem.getDevFwVersion(),
"protocal_version": "AIS140",
Expand All @@ -96,8 +96,8 @@ def server_cmd(cmd, key, val):
"digital_io_status": "0001",
"analog_io_status": 12.6
}
res = ais_client.send_heart_beat(**hbt_kwargs)
logger.debug("ais_client.send_heart_beat() %s" % res)
res = ais_client.send_health_monitoring(**hbt_kwargs)
logger.debug("ais_client.send_health_monitoring() %s" % res)
time.sleep(1)

# Send Location/Alert Information Packet
Expand Down Expand Up @@ -162,7 +162,7 @@ def server_cmd(cmd, key, val):
"distance": 12345,
"provider": "G",
"vehicle_reg_no": "CAR12345",
"reply_number": ""
"reply_number": "NA"
}
res = ais_client.send_emergency(**meg_kwargs)
logger.debug("ais_client.send_emergency() %s" % res)
Expand Down
Binary file removed docs/VT140-Protocol_V1.0_20200104.pdf
Binary file not shown.
Loading