instance static method
Implementation
static RegisterField instance(String key, Map<String,dynamic> json){
FieldType type = FieldType.values.byName(json['type']);
String? name = json['name'];
int offset = json['offset'];
int size = json['size'];
String? tag = json['tag'];
List? selection = json['selection'];
switch(type){
case FieldType.float:
return FloatField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.short:
return ShortField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.ushort:
return UshortField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.int:
return IntField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.uint:
return UintField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.ulong:
return UlongField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.byte:
ByteLoc bytePos = ByteLoc.values.byName(json['byte_pos']);
return ByteField(key, type,name,offset,size,bytePos,tag: tag,selection: selection);
case FieldType.bits:
List<int> bitsRange = json['bits_range'];
return BitsField(key, type,name,offset,size, bitsRange ,tag: tag,selection: selection);
case FieldType.bit:
int bitPos = json['bit_pos'];
return BitField(key, type,name,offset,size, bitPos,tag: tag,selection: selection);
case FieldType.string:
return StringField(key, type,name,offset,size,tag: tag,selection: selection);
case FieldType.hex:
return HexField(key, type,name,offset,size,tag: tag,selection: selection);
default:
throw Exception("Register type error in json config.");
}
}