summaryrefslogtreecommitdiff
path: root/decoders/spiflash
diff options
context:
space:
mode:
authorUwe Hermann <uwe@hermann-uwe.de>2020-01-01 18:09:51 +0100
committerUwe Hermann <uwe@hermann-uwe.de>2020-01-10 20:50:15 +0100
commit44d058f3524e8c34bb72bd2f0c0c02740c190c7a (patch)
treee4c7673653ea6894c416280cd33e9885c61afdfc /decoders/spiflash
parent927e2ba624b780e8b846ce3cc2b013afac6fa751 (diff)
downloadlibsigrokdecode-44d058f3524e8c34bb72bd2f0c0c02740c190c7a.tar.gz
libsigrokdecode-44d058f3524e8c34bb72bd2f0c0c02740c190c7a.zip
spiflash: Use SrdIntEnum for annotation classes.
Also, automate construction of the Ann SrdIntEnum. This avoids having to remember to manually keep two lists in sync.
Diffstat (limited to 'decoders/spiflash')
-rw-r--r--decoders/spiflash/lists.py3
-rw-r--r--decoders/spiflash/pd.py12
2 files changed, 6 insertions, 9 deletions
diff --git a/decoders/spiflash/lists.py b/decoders/spiflash/lists.py
index c6e07bf..80ca27d 100644
--- a/decoders/spiflash/lists.py
+++ b/decoders/spiflash/lists.py
@@ -1,7 +1,7 @@
##
## This file is part of the libsigrokdecode project.
##
-## Copyright (C) 2015 Uwe Hermann <uwe@hermann-uwe.de>
+## Copyright (C) 2015-2020 Uwe Hermann <uwe@hermann-uwe.de>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -21,7 +21,6 @@ from collections import OrderedDict
# OrderedDict which maps command IDs to their names and descriptions.
# Please keep this sorted by command ID.
-# Don't forget to update 'Ann' in pd.py if you add/remove items here.
cmds = OrderedDict([
(0x01, ('WRSR', 'Write status register')),
(0x02, ('PP', 'Page program')),
diff --git a/decoders/spiflash/pd.py b/decoders/spiflash/pd.py
index 33fe229..26f3a24 100644
--- a/decoders/spiflash/pd.py
+++ b/decoders/spiflash/pd.py
@@ -1,7 +1,7 @@
##
## This file is part of the libsigrokdecode project.
##
-## Copyright (C) 2011-2016 Uwe Hermann <uwe@hermann-uwe.de>
+## Copyright (C) 2011-2020 Uwe Hermann <uwe@hermann-uwe.de>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -18,16 +18,14 @@
##
import sigrokdecode as srd
+import re
+from common.srdhelper import SrdIntEnum
from .lists import *
L = len(cmds)
-# Don't forget to keep this in sync with 'cmds' in lists.py.
-class Ann:
- WRSR, PP, READ, WRDI, RDSR, WREN, FAST_READ, SE, RDSCUR, WRSCUR, \
- RDSR2, CE, ESRY, DSRY, WRITE1, WRITE2, REMS, RDID, RDP_RES, CP, ENSO, DP, \
- READ2X, EXSO, CE2, STATUS, BE, REMS2, \
- BIT, FIELD, WARN = range(L + 3)
+a = [re.sub('\/', '_', c[0]).replace('2READ', 'READ2X') for c in cmds.values()] + ['BIT', 'FIELD', 'WARN']
+Ann = SrdIntEnum.from_list('Ann', a)
def cmd_annotation_classes():
return tuple([tuple([cmd[0].lower(), cmd[1]]) for cmd in cmds.values()])