Developer Application Interface (ARC API) v4.5.8
ARC, Inc. GenIV Application Interface
ArcDeviceIOControl.h
1// +------------------------------------------------------------------------------------------------------------------+
2// | FILE: ArcDeviceIOControl.h ( GenIV ) |
3// +------------------------------------------------------------------------------------------------------------------+
4// | PURPOSE: This file defines the ARC PCIe device driver io-control interface. |
5// | |
6// | AUTHOR: Scott Streit DATE: Jan 6, 2020 |
7// | |
8// | Copyright 2020 Astronomical Research Cameras, Inc. All rights reserved. |
9// +------------------------------------------------------------------------------------------------------------------+
12#pragma once
13
14#include <cstdint>
15
16#include <CArcDevice.h>
17
18
19
20namespace arc
21{
22 namespace gen4
23 {
24
25 // +----------------------------------------------------------------------------------------------------------+
26 // | BAR definitions |
27 // +----------------------------------------------------------------------------------------------------------+
28 constexpr std::uint32_t BAR = 2;
30 constexpr std::uint32_t DEVICE_CLEAR_SEND_RECV_REG = 0x2F0;
31 constexpr std::uint32_t DEVICE_CLEAR_SEND_RECV = 1;
33 constexpr std::uint32_t DEVICE_PIXEL_COUNTER_REG = 0x40;
34 constexpr std::uint32_t DEVICE_RESET_PIXEL_COUNTER_REG = 0x220;
35 constexpr std::uint32_t DEVICE_RESET_PIXEL_COUNTER = 1;
37 constexpr std::uint32_t DEVICE_BUFFER_0_BYTES_RECVD_REG = 0x320;
45 constexpr std::uint32_t DEVICE_BUFFER_0_STATUS_REG = 0x340;
46
47 constexpr std::uint32_t DEVICE_BUFFER_1_BYTES_RECVD_REG = 0x330;
55 constexpr std::uint32_t DEVICE_BUFFER_1_STATUS_REG = 0x350;
56
57 constexpr std::uint32_t DEVICE_BUFFER_STATUS_DIRTY_MASK = 1;
58 constexpr std::uint32_t DEVICE_BUFFER_STATUS_CLEAN_MASK = 1;
59 constexpr std::uint32_t DEVICE_BUFFER_STATUS_COMPLETE_MASK = 2;
60 constexpr std::uint32_t DEVICE_BUFFER_STATUS_OVERFLOW_MASK = 4;
61 constexpr std::uint32_t DEVICE_BUFFER_STATUS_CLEAR = 7;
73 constexpr std::uint32_t DEVICE_STATUS_REG = 0x100;
74
75 constexpr std::uint32_t DEVICE_STATUS_ALERT_MASK = 0x2;
76 constexpr std::uint32_t DEVICE_STATUS_IMAGE_ADDRESS_ERROR_MASK = 0x80;
78 constexpr std::uint32_t DEVICE_ALERT_PACKET_REG = 0x2000;
80 constexpr std::uint32_t CLEAR_IMAGE_ADDRESS_ERROR = 4;
83 // +----------------------------------------------------------------------------------------------------------+
84 // | Device I/O control commands |
85 // +----------------------------------------------------------------------------------------------------------+
86
88 enum class IOCtrlCode_e : std::uint32_t
89 {
90 READ_BAR = 0x01,
92 WRITE_BAR,
101 MEM_MAP,
102 MEM_UNMAP,
106 };
107
108 } // end gen4 namespace
109} // end arc namespace
constexpr std::uint32_t DEVICE_STATUS_REG
constexpr std::uint32_t DEVICE_PIXEL_COUNTER_REG
constexpr std::uint32_t DEVICE_ALERT_PACKET_REG
constexpr std::uint32_t DEVICE_BUFFER_1_BYTES_RECVD_REG
constexpr std::uint32_t DEVICE_BUFFER_STATUS_OVERFLOW_MASK
constexpr std::uint32_t DEVICE_BUFFER_0_STATUS_REG
constexpr std::uint32_t DEVICE_CLEAR_SEND_RECV_REG
constexpr std::uint32_t DEVICE_BUFFER_1_STATUS_REG
constexpr std::uint32_t DEVICE_RESET_PIXEL_COUNTER
constexpr std::uint32_t DEVICE_BUFFER_STATUS_COMPLETE_MASK
constexpr std::uint32_t CLEAR_IMAGE_ADDRESS_ERROR
constexpr std::uint32_t DEVICE_BUFFER_0_BYTES_RECVD_REG
constexpr std::uint32_t DEVICE_STATUS_ALERT_MASK
constexpr std::uint32_t DEVICE_BUFFER_STATUS_CLEAN_MASK
constexpr std::uint32_t BAR
constexpr std::uint32_t DEVICE_CLEAR_SEND_RECV
constexpr std::uint32_t DEVICE_RESET_PIXEL_COUNTER_REG
constexpr std::uint32_t DEVICE_BUFFER_STATUS_CLEAR
constexpr std::uint32_t DEVICE_STATUS_IMAGE_ADDRESS_ERROR_MASK
constexpr std::uint32_t DEVICE_BUFFER_STATUS_DIRTY_MASK
Definition: CArcBase.h:50