12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*
- * cdc_acm_protocol.h
- *
- * Greaseweazle protocol over CDC ACM streams.
- *
- * Written & released by Keir Fraser <keir.xen@gmail.com>
- *
- * This is free and unencumbered software released into the public domain.
- * See the file COPYING for more details, or visit <http://unlicense.org>.
- */
- /* CMD_GET_INFO, length=3, 0. Returns 32 bytes after ACK. */
- #define CMD_GET_INFO 0
- /* CMD_SEEK, length=3, cyl# */
- #define CMD_SEEK 1
- /* CMD_SIDE, length=3, side# (0=bottom) */
- #define CMD_SIDE 2
- /* CMD_SET_DELAYS, length=2+4*2, <delay_params> */
- #define CMD_SET_DELAYS 3
- /* CMD_GET_DELAYS, length=2. Returns 4*2 bytes after ACK. */
- #define CMD_GET_DELAYS 4
- /* CMD_MOTOR, length=3, motor_state */
- #define CMD_MOTOR 5
- /* CMD_READ_FLUX, length=3, #revs. Returns flux readings until EOStream. */
- #define CMD_READ_FLUX 6
- /* CMD_WRITE_FLUX, length=2. Host follows with flux readings until EOStream. */
- #define CMD_WRITE_FLUX 7
- /* CMD_GET_FLUX_STATUS, length=2. Last read/write status returned in ACK. */
- #define CMD_GET_FLUX_STATUS 8
- /* CMD_GET_READ_INFO, length=2. Returns 7*8 bytes after ACK. */
- #define CMD_GET_READ_INFO 9
- /* [BOOTLOADER] CMD_UPDATE, length=6, <update_len>.
- * Host follows with <update_len> bytes.
- * Bootloader finally returns a status byte, 0 on success. */
- #define CMD_UPDATE 1
- #define ACK_OKAY 0
- #define ACK_BAD_COMMAND 1
- #define ACK_NO_INDEX 2
- #define ACK_NO_TRK0 3
- #define ACK_FLUX_OVERFLOW 4
- #define ACK_FLUX_UNDERFLOW 5
- #define ACK_WRPROT 6
- #define BAUD_CLEAR_COMMS 10000
- struct __packed gw_info {
- uint8_t fw_major;
- uint8_t fw_minor;
- uint8_t max_rev;
- uint8_t max_cmd;
- uint32_t sample_freq;
- };
- /*
- * Local variables:
- * mode: C
- * c-file-style: "Linux"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
|