Files
MewtocolNet/Examples/TestRegistersEnumBitwise.cs
Felix Weiß 09f4da54a9 Made registers use the IRegister interface
- cleanup and refactoring
- fully implemented auto prop register generator unit tests #4
- added plc test program c30 fpx-h
- fixed bitarray setback
- cleaned up examples and added new ones with addition of attributes for later additions
2023-06-15 20:04:38 +02:00

107 lines
2.9 KiB
C#

using MewtocolNet;
using MewtocolNet.RegisterAttributes;
using System;
using System.Collections;
namespace Examples {
public class TestRegistersEnumBitwise : RegisterCollectionBase {
private bool startCyclePLC;
[Register(50, RegisterType.R)]
public bool StartCyclePLC {
get => startCyclePLC;
set => AutoSetter(value, ref startCyclePLC);
}
//the enum you want to read out
public enum CurrentState {
Undefined = 0,
State1 = 1,
State2 = 2,
//If you leave an enum empty it still works
//State3 = 3,
State4 = 4,
State5 = 5,
State6 = 6,
State7 = 7,
State8 = 8,
State9 = 9,
State10 = 10,
State11 = 11,
State12 = 12,
State13 = 13,
State14 = 14,
State15 = 15,
}
//automatically convert the short (PLC int) register to an enum
[Register(500)]
public CurrentState TestEnum16 { get; private set; }
//also works for 32bit registers
[Register(501, BitCount.B32)]
public CurrentState TestEnum32 { get; private set; }
//get the whole bit array from DT503
[Register(503)]
public BitArray TestBitRegister16 { get; private set; }
//you can also extract single bits from DT503
[Register(503, 0, BitCount.B16)]
public bool BitValue0 { get; private set; }
[Register(503, 1, BitCount.B16)]
public bool BitValue1 { get; private set; }
[Register(503, 2, BitCount.B16)]
public bool BitValue2 { get; private set; }
[Register(503, 3, BitCount.B16)]
public bool BitValue3 { get; private set; }
[Register(503, 4, BitCount.B16)]
public bool BitValue4 { get; private set; }
[Register(503, 5, BitCount.B16)]
public bool BitValue5 { get; private set; }
[Register(503, 6, BitCount.B16)]
public bool BitValue6 { get; private set; }
[Register(503, 7, BitCount.B16)]
public bool BitValue7 { get; private set; }
[Register(503, 8, BitCount.B16)]
public bool BitValue8 { get; private set; }
[Register(503, 9, BitCount.B16)]
public bool BitValue9 { get; private set; }
[Register(503, 10, BitCount.B16)]
public bool BitValue10 { get; private set; }
[Register(503, 11, BitCount.B16)]
public bool BitValue11 { get; private set; }
[Register(503, 12, BitCount.B16)]
public bool BitValue12 { get; private set; }
[Register(503, 13, BitCount.B16)]
public bool BitValue13 { get; private set; }
[Register(503, 14, BitCount.B16)]
public bool BitValue14 { get; private set; }
[Register(503, 15, BitCount.B16)]
public bool BitValue15 { get; private set; }
}
}