Files
drivers/p1am/defines.go
T
2021-04-02 17:23:38 +02:00

158 lines
4.5 KiB
Go

package p1am
//go:generate go run ./internal/cmd/gen_defines
type ModuleProps struct {
ModuleID uint32
DI, DO, AI, AO, Status, Config, DataSize byte
Name string
}
var modules = []ModuleProps{
//{0x000000ID,di,do,ai,ao,st,cf,ds}
{0x00000000, 0, 0, 0, 0, 0, 0, 0, "Empty"}, //Empty first entry for defaultgs
{0x04A00081, 1, 0, 0, 0, 0, 0, 1, "P1-08ND3"}, //P1-08ND3
{0x04A00085, 1, 0, 0, 0, 0, 0, 1, "P1-08NA"}, //P1-08NA
{0x04A00087, 1, 0, 0, 0, 0, 0, 1, "P1-08SIM"}, //P1-08SIM
{0x04A00088, 1, 0, 0, 0, 0, 0, 1, "P1-08NE3"}, //P1-08NE3
{0x05200082, 2, 0, 0, 0, 0, 0, 1, "P1-16ND3"}, //P1-16ND3
{0x05200089, 2, 0, 0, 0, 0, 0, 1, "P1-16NE3"}, //P1-16NE3
{0x1403F481, 0, 0, 0, 32, 4, 4, 0xA0, "P1-04PWM"}, //P1-04PWM
{0x1404008D, 0, 1, 0, 0, 0, 0, 1, "P1-08TA"}, //P1-08TA
{0x1404008F, 0, 1, 0, 0, 0, 0, 1, "P1-08TRS"}, //P1-08TRS
{0x14040091, 0, 2, 0, 0, 0, 0, 1, "P1-16TR"}, //P1-16TR
{0x14050081, 0, 1, 0, 0, 0, 0, 1, "P1-08TD1"}, //P1-08TD1
{0x14050082, 0, 1, 0, 0, 0, 0, 1, "P1-08TD2"}, //P1-08TD2
{0x14080085, 0, 2, 0, 0, 0, 0, 1, "P1-15TD1"}, //P1-15TD1
{0x14080086, 0, 2, 0, 0, 0, 0, 1, "P1-15TD2"}, //P1-15TD2
{0x24A50081, 1, 1, 0, 0, 0, 0, 1, "P1-16CDR"}, //P1-16CDR
{0x24A50082, 1, 1, 0, 0, 0, 0, 1, "P1-15CDD1"}, //P1-15CDD1
{0x24A50083, 1, 1, 0, 0, 0, 0, 1, "P1-15CDD2"}, //P1-15CDD2
{0x34605581, 0, 0, 16, 0, 12, 18, 16, "P1-04AD"}, //P1-04AD
{0x34605588, 0, 0, 16, 0, 12, 8, 16, "P1-04RTD"}, //P1-04RTD
{0x3460558F, 0, 0, 16, 0, 12, 2, 12, "P1-04ADL-1"}, //P1-04ADL-1
{0x34605590, 0, 0, 16, 0, 12, 2, 12, "P1-04ADL-2"}, //P1-04ADL-2
{0x34608C81, 0, 0, 16, 0, 12, 20, 32, "P1-04THM"}, //P1-04THM
{0x34608C8E, 0, 0, 16, 0, 12, 8, 32, "P1-04NTC"}, //P1-04NTC
{0x34A0558A, 0, 0, 32, 0, 12, 2, 12, "P1-08ADL-1"}, //P1-08ADL-1
{0x34A0558B, 0, 0, 32, 0, 12, 2, 12, "P1-08ADL-2"}, //P1-08ADL-2
{0x34A5A481, 2, 0, 36, 36, 4, 12, 0xC0, "P1-02HSC"}, //P1-02HSC
{0x44035583, 0, 0, 0, 16, 4, 0, 12, "P1-04DAL-1"}, //P1-04DAL-1
{0x44035584, 0, 0, 0, 16, 4, 0, 12, "P1-04DAL-2"}, //P1-04DAL-2
{0x44055588, 0, 0, 0, 32, 4, 0, 12, "P1-08DAL-1"}, //P1-08DAL-1
{0x44055589, 0, 0, 0, 32, 4, 0, 12, "P1-08DAL-2"}, //P1-08DAL-2
{0x5461A783, 0, 0, 16, 8, 12, 2, 12, "P1-4ADL2DAL-1"}, //P1-4ADL2DAL-1
{0x5461A784, 0, 0, 16, 8, 12, 2, 12, "P1-4ADL2DAL-2"}, //P1-4ADL2DAL-2
{0xFFFFFFFF, 0, 0, 0, 0, 0, 0, 0, "BAD SLOT"}, //empty in case no modules are defined.
{0x00000000, 0, 0, 0, 0, 0, 0, 0, "BAD SLOT"}, //empty in case no modules are defined.
}
var defaultConfig = map[uint32][]byte{
0x34605590:// P1_04ADL_2_DEFAULT_CONFIG
{0x40, 0x03},
0x34608C8E: // P1_04NTC_DEFAULT_CONFIG
{0x40, 0x03, 0x60, 0x05,
0x20, 0x00, 0x80, 0x02},
0x34608C81: // P1_04THM_DEFAULT_CONFIG
{0x40, 0x03, 0x60, 0x05,
0x21, 0x00, 0x22, 0x00,
0x23, 0x00, 0x24, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00},
0x34605588: // P1_04RTD_DEFAULT_CONFIG
{0x40, 0x03, 0x60, 0x05,
0x20, 0x01, 0x80, 0x00},
0x34605581: // P1_04AD_DEFAULT_CONFIG
{0x40, 0x03, 0x00, 0x00,
0x20, 0x03, 0x00, 0x00,
0x21, 0x03, 0x00, 0x00,
0x22, 0x03, 0x00, 0x00,
0x23, 0x03},
0x3460558F:// P1_04ADL_1_DEFAULT_CONFIG
{0x40, 0x03},
0x34A0558A:// P1_08ADL_1_DEFAULT_CONFIG
{0x40, 0x07},
0x34A0558B:// P1_08ADL_2_DEFAULT_CONFIG
{0x40, 0x07},
0x5461A783:// P1_04ADL2DAL_1_DEFAULT_CONFIG
{0x40, 0x03},
0x5461A784:// P1_04ADL2DAL_2_DEFAULT_CONFIG
{0x40, 0x03},
0x1403F481:// P1_04PWM_DEFAULT_CONFIG
{0x02, 0x02, 0x02, 0x02},
0x34A5A481: // P1_02HSC_DEFAULT_CONFIG
{0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x01},
}
const NUMBER_OF_MODULES = 15 //Current max 15 Modules
const SWITCH_BUILTIN = 31
const baseEnable = 33
const MOD_HDR = 0x02
const VERSION_HDR = 0x03
const ACTIVE_HDR = 0x04
const DROPOUT_HDR = 0x05
const CFG_HDR = 0x10
const READ_CFG_HDR = 0x11
const PETWD_HDR = 0x30
const STARTWD_HDR = 0x31
const STOPWD_HDR = 0x32
const CONFIGWD_HDR = 0x33
const READ_STATUS_HDR = 0x40
const READ_DISCRETE_HDR = 0x50
const READ_ANALOG_HDR = 0x51
const READ_BLOCK_HDR = 0x52
const WRITE_DISCRETE_HDR = 0x60
const WRITE_ANALOG_HDR = 0x61
const WRITE_BLOCK_HDR = 0x62
const FW_UPDATE_HDR = 0xAA
const DUMMY = 0xFF
const EMPTY_SLOT_ID = 0xFFFFFFFE
const MAX_TIMEOUT = 0xFFFFFFFF
const DISCRETE_IN_BLOCK = 0
const ANALOG_IN_BLOCK = 1
const DISCRETE_OUT_BLOCK = 2
const ANALOG_OUT_BLOCK = 3
const STATUS_IN_BLOCK = 4
const MISSING24V_STATUS = 3
const BURNOUT_STATUS = 5
const UNDER_RANGE_STATUS = 7
const OVER_RANGE_STATUS = 11
const TOGGLE = 0x01
const HOLD = 0x00