Analyzes the EdgeComputing ATS project for architecture understanding, device management, and codebase navigation.
ATS is an edge computing gateway for automatic ticket systems, managing multiple hardware devices (IC card readers, QR scanners, LED/LCD displays, card dispensers/collectors, etc.) and communicating with cloud platforms.
text
/home/forlinx/Documents/trae_projects/workspace/EdgeComputing/ats/
docs/系统架构文档.md - System architecture (layered architecture, modules, communication)docs/项目概述文档.md - Project overview (features, users, components)docs/用户操作手册.md - User operation manualdocs/设计说明书.md - Design specification (interfaces, protocols, algorithms)robot/ats-robot-server/ - Main service (core business logic)robot/ats-robot-lcd-app/ - LCD application (HMI)common/ats_common/ - Serial, network, database utilitiescommon/ats_common_device/ - Device abstraction layer (20+ device types)common/ats_media/ - Video capture/encodingcommon/ats_protocol_api/ - Uplink protocol (cloud communication)common/ats_protocol_robot/ - Downlink protocol (device communication)device/io/ - IO devices (GPIO, relay)device/ic/ - IC card readers (multiple vendors: dy, hh, jt, yc, robot)device/qr/ - QR/barcode scannersdevice/led/ - LED displaysdevice/provide/ - Card dispensersdevice/collect/ - Card collectorsdevice/plate/ - License plate recognitionDevice TypeClassDescriptionIOCATSIODeviceDigital input/output controlIC CardCATSICDeviceCard read/write (M1, CPU)QR CodeCATSQRDeviceBarcode/QR scanningLEDCATSLEDDeviceInformation displayLCDCATSLCDDeviceHuman-machine interfaceProvideCATSProvideDeviceCard dispensingCollectCATSCollectDeviceCard collectionPlateCATSPlateDeviceLicense plate recognitionPrinterCATSPrinterDeviceReceipt printing
cpp
class CNodeService : public CService {
// Device management
CATSIODevice* m_pIODevice;
CATSProvideDevice* m_pProvideDevice;
CATSCollectDevice* m_pCollectDevice;
CATSQRDevice* m_pQRDevice1;
CATSLEDDevice* m_pATSLEDDevice;
// Business management
CCoilManager* m_pCoilManager;
CKioskManager* m_pKioskManager;
// Communication
CMQTTServer* m_pMQTTServer;
CDYProtocolServer* m_pDYProtocolServer;
};
cpp
class CATSBaseDevice : public CBaseInterface {
virtual BOOL Open(...) = 0;
virtual void Close() = 0;
void SetStatusHandle(CATSBaseDeviceStatusHandle* pHandle);
};
cpp
struct ATSCmdHeartonline {
unsigned int dwDeviceId;
unsigned char byStatus;
unsigned char byNetwork;
unsigned short wDeviceType;
unsigned int dwOnlineTime;
};
cpp
struct ATSCmdCardProvide {
unsigned int dwCardType;
unsigned int dwCardNum;
unsigned char byAction; // 1-issue, 2-recycle
};
bash
cd ats/build-aarch64
./build.sh
docs/device/{type}/ for vendor-specific implementationscommon/ats_protocol_*/common/ats_common_device/