Takže krok po kroku:
1. Pripoj osciloskop sieťovým káblom
2. "Utility" - na stránke 2 "I/O"
3. V IPSet zapni DHCP - "Enabled" a zapíš si IP adresu osciloskopu
4. Vypni a zapni osciloskop
5. Otvor prehliadač na počítači pripojenom v sieti kam aj osciloskop a zadaj do neho IP adresu z osciloskopu.
6. V okne SCPI zadaj príkaz SCOPEID? aj s otáznikom a klikni na SEND
7. Skopíruj zobrazené ID zo spodného okna
8. Otvor webstránku online python compiler online python compiler, zmaž zobrazený kód a skopíruj tam kód scriptu z prílohy nižšie.
9. V scripte v riadku SCOPEID = doplň do zátvoriek ID svojho osciloskopu, ale bez pomlčiek a v riadku SN = doplň sériové číslo osciloskopu z nálepky vzadu na osciloskope, alebo z menu Utility - System Status položka Serial No, alebo z HOME stránky z prehliadača pripojeného na osciloskop.
10. V prípade potreby prepíš v riadku Model = druh osciloskopu na iný model z ponuky zo scriptu za #
11. Klikni na "Run"
12. V prípade hacku SDS1104 zo 100MHz na 200MHz, skopíruj kód zobrazený za "200M"
13. V prehliadači v okne osciloskopu zase vpíš v okne SCPI príkaz MCBD medzera a za ním kód skopírovaný z bodu 12. a klikni na Send. Osciloskop je odblokovaný na 200MHz
Odblokovanie neobmedzených funkcií AWG, MSO a WiFi mi fungovalo len cez menu osciloskopu. V položke Utility - tretia stránka položka Options - Install zadaj kódy zobrazené zo srciptu. Postupne každý jeden pre AWG, WIFI a MSO. Na poradí nezáleží. Žiaľ, keď už je funkcia odblokovaná, položka je nedostupná, tak fotku ako to zadávať už na svojom osciloskope neurobím.
EDIT:
AWG,MSO a WiFi by mali ísť aj príkazom cez prehliadač v okne SCPI príkazmi:
LCISL AWG,sem zadaj kód zo scriptu pre AWG
LCISL WIFI,sem zadaj kód zo scriptu pre WIFI
LCISL MSO,sem zadaj kód zo scriptu pre MSO
Kód: Vybrat vše
import hashlib
SCOPEID = '0123456789abcdef'
SN = 'SDSXXXXXXXXXXX'
Model = 'SDS1000X-E'
# 'SDS1000X-E', 'SDS2000X-E', 'SDS2000X+', 'SDS5000X', 'ZODIAC-'
bwopt = ('25M', '40M', '50M', '60M', '70M', '100M', '150M', '200M', '250M', '300M', '350M', '500M', '750M', '1000M', 'MAX')
otheropt = ('AWG', 'WIFI', 'MSO', 'FLX', 'CFD', 'I2S', '1553', 'FG', '16LA')
hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'
def gen(x):
h = hashlib.md5((
hashkey +
(Model+'\n').ljust(32, '\x00') +
opt.ljust(5, '\x00') +
2*(((SCOPEID if opt in bwopt else SN) + '\n').ljust(32, '\x00')) +
'\x00'*16).encode('ascii')
).digest()
key = ''
for b in h:
if (b <= 0x2F or b > 0x39) and (b <= 0x60 or b > 0x7A):
m = b % 0x24
b = m + (0x57 if m > 9 else 0x30)
if b == 0x30: b = 0x32
if b == 0x31: b = 0x33
if b == 0x6c: b = 0x6d
if b == 0x6f: b = 0x70
key += chr(b)
return key.upper()
for opt in bwopt:
print('{:5} {}'.format(opt, gen(SCOPEID)))
for opt in otheropt:
print('{:5} {}'.format(opt, gen(SN)))