Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
YDLidarX4/YDLidarX4.h
- Committer:
 - htzer
 - Date:
 - 2022-03-03
 - Revision:
 - 0:bcaa6d8df26d
 
File content as of revision 0:bcaa6d8df26d:
#ifndef YDLIDARX4_H
#define YDLIDARX4_H
#include "BufferedSerial.h"
#include "mbed.h"
#define LIDAR_BAUD 128000
#define RESPONSE_HEADER_BYTE_1 0xA5
#define RESPONSE_HEADER_BYTE_2 0x5A
#define RESPONSE_HEADER_TYPE_START 0x81
// Scan Command
#define CLOUD_HEADER_BYTE_1 0xAA
#define CLOUD_HEADER_BYTE_2 0x55
// 2B in length, fixed at 0x55AA, low in front, high in back
#define START_BYTE 0xA5
#define CMD_START 0x60
#define CMD_STOP 0x65
#define CMD_RESET 0x80
#define CMD_HEALTH 0x91
// System Command
struct responseHeader {
    //응답 관련 헤더
    uint8_t startByte1;
    uint8_t startByte2;
    //start sign, 16비트인데 2개로 나눠놓은듯 
    uint32_t length:30;
    //length 30비트
    uint32_t mode:2;
    //mode 2비트
    uint8_t type;
    //타입코드, 개발자메뉴얼에 8비트라 명시
} __attribute__((packed));
struct cloudHeader {
    //패킷
    uint16_t ph;
    // 패킷헤더
    uint8_t ct;
    // 패키지 타입
    uint8_t lsn;
    // 수신 정보량
    uint16_t fsa;
    // first
    uint16_t lsa;
    // last
    uint16_t cs;
    // check sum
} __attribute__((packed));
class YDLidarX4 {
public:
    YDLidarX4(PinName tx, PinName rx, PinName m_en, PinName ctl);
    void stopplease();
    //좀 멈추게 만들어본거
    void softReset();
    int startSampling();
    void stopSampling();
    // 단순명령어들, 따로 입력값이 없다.
    
    void setRotationSpeed(float speed);
    void getResponseHeader(responseHeader* header);
    void getCloudHeader(cloudHeader* header);
    void getCloudSamples(uint16_t* tab, uint8_t size);
private :
    void sendCommand(uint8_t com);
    void flush();
    BufferedSerial _lidar;
    DigitalOut _m_en;
    PwmOut _m_ctl;
};
#endif