M
mark.seagoe
I'm trying to make a script environment with datatypes (or classes)
for accessing hardware registers. At the top level, I would like the
ability to bitwise ops if bit slice brackets are used, but if no
brackets are used, I would like it to write/read the whole value.
For example, if I have something like:
I have the bitslice part working. But of course as expected, if I
type<__main__.boo object at 0x00A130D0>
I wanted to avoid having something like shadow_register.value just
because it's clumsier. I read about the __new__() class for
overriding the classtype, like:
print 'foo'
class foo(object):
def __new__(*args): return 0
but if I stick in a __init__(self, val): method, then it chokes saying
val is a global name that's not defined.
Now I know that I have to live with the fact that I can't haveBecause it will get reassigned from my class value to a newly
intialized memory location (int object). But can I have it read the
value without the .value extension? Is this even possible? Maybe
there's a way to override the = operator? (Go easy on me - I'm a
hardware guy).
Thx,
Mark
for accessing hardware registers. At the top level, I would like the
ability to bitwise ops if bit slice brackets are used, but if no
brackets are used, I would like it to write/read the whole value.
For example, if I have something like:
4shadow_register = MyRegClass(0xAA)
shadow_register 170
shadow_register[7:4] = 3 # <== changes value to 0x3A
shadow_register 58
shadow_register = 0x89
shadow_register 137
shadow_register[4:1]
I have the bitslice part working. But of course as expected, if I
type<__main__.boo object at 0x00A130D0>
I wanted to avoid having something like shadow_register.value just
because it's clumsier. I read about the __new__() class for
overriding the classtype, like:
print 'foo'
class foo(object):
def __new__(*args): return 0
but if I stick in a __init__(self, val): method, then it chokes saying
val is a global name that's not defined.
Now I know that I have to live with the fact that I can't haveBecause it will get reassigned from my class value to a newly
intialized memory location (int object). But can I have it read the
value without the .value extension? Is this even possible? Maybe
there's a way to override the = operator? (Go easy on me - I'm a
hardware guy).
Thx,
Mark