commit 5110d0cff8508b1e1c9e47a629baf9387e336422 Author: Yeongdo Park Date: Sun Nov 29 14:34:40 2020 -0800 cmd line version working diff --git a/async-stream-tutorial.py b/async-stream-tutorial.py new file mode 100644 index 0000000..b6c3fbc --- /dev/null +++ b/async-stream-tutorial.py @@ -0,0 +1,187 @@ +import argparse +import csv +import asyncio +import serial_asyncio + +parser = argparse.ArgumentParser() +parser.add_argument("-o", "--output", default="data.csv", help="output csv file name") +parser.add_argument("-d", "--device", help="serial communication port name", required=True) +parser.add_argument("-t", "--time", default=60, type=int, help="sampling time in seconds") +parser.add_argument("-g", "--debug", action='store_true') + +args = parser.parse_args() +print (args) + +is_debug = args.debug +device = args.device + +ntc = 13 +nreq = ntc + 3 + +tsample = args.time +period = 2. # sec, sampling period +nsample = (tsample/period) +eol = bytes.fromhex("2A") + +q = asyncio.Queue() + + +output_file = open(args.output, 'w') +outputwriter = csv.writer(output_file, delimiter=',') +outputwriter.writerow(["time", "T_ref"] + ["T_{}".format(i) for i in range(ntc)]) +output_file.flush() + +def get_return_type (b): + l = len(b) + if b[0] == 0x0D : + l = -1 + elif b[0] == 0x45 : + l = 3 + elif b[0] == 0x43 : + l = -1 + elif b[0] == 0x33 : + l = l + 2 + elif b[0] == 0x4B : + l = 4 * nreq + 9 + 4 + + return l + +def parse_time(msg): + minutes = int.from_bytes(msg[0:2], byteorder='big') + hh = minutes // 60 + mm = minutes - hh * 60 + ss = int.from_bytes(msg[2:4], byteorder='big') / 10. + return hh,mm,ss + +def decode_campbell_float(m): + exponent = (m[0] & (128-1)) - 64 + sign = -1 if m[0] & 128 > 0 else 1 + mantissa = int.from_bytes(m[1:], byteorder='big')/16777216 + val = sign * mantissa * (2**exponent) + return val + +def parse_data(msg): + return ([decode_campbell_float(msg[i:i+4]) for i in range(0,len(msg),4)]) + +def parse_binary(msg): + time = parse_time(msg[3:7]) + data = parse_data(msg[9:9+4*nreq]) + return (time, data) + +parse_data(bytes.fromhex("BF820C49")) + + +async def main(loop): + reader, writer = await serial_asyncio.open_serial_connection(url=device, baudrate=9600) + if is_debug: print('Reader created') + if is_debug: print('Writer created') + + #writer.write(bytes.fromhex("0D")) + a = bytes.fromhex("430D") + + input_loc_request = "".join( + ["004000"] + + ["{:02X}".format(i+1) for i in range(nreq)] + + ["00"] + ) + + raw_messages = [ + "430D", + "430D", + "333134324A0D", + input_loc_request, + #"0040000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C00", + ] + [ "4B0D" for i in range(int(nsample)) ] + + messages = list(map(bytes.fromhex, raw_messages)) + + ''' + print(bytes.fromhex("0D0D"), get_return_type(bytes.fromhex("0D0D"))) + for msg in messages: + print(msg, get_return_type(msg)) + ''' + + # Begin Communication + msg = bytes.fromhex("0D") + await q.put(get_return_type(msg)) + writer.write(msg) + await asyncio.sleep(1.0) + writer.write(msg) + await asyncio.sleep(1.0) + + sent = send(writer, messages) + received = recv(reader) + await asyncio.wait([sent, received]) + + +async def send(w, msgs): + # msg = msgs[0] + + for msg in msgs: + # while True: + # print(msg, get_return_type(msg)) + await q.put(get_return_type(msg)) + w.write(msg) + if is_debug: print('DEBUG> message sent: ', msg) + # print(f'sent: {msg.decode().rstrip()}') + await asyncio.sleep(period) + + await q.put(get_return_type((bytes.fromhex("450D")))) + w.write(bytes.fromhex("450D")) + if is_debug: print('DEBUG> Done sending') + + +async def recv(r): + while True: + rtype = await q.get() + + if rtype < 0 : + msg = await r.readuntil(eol) + else: + if is_debug: print("DEBUG> Reading ", rtype, " bytes") + msg = await r.readexactly(rtype) + + if is_debug: print('DEBUG> message received: ', msg[0], msg) + + if msg[0] == 75: + time, data = parse_binary(msg) + hhmmss = "{0[0]}:{0[1]}:{0[2]}".format(time) + if is_debug: print ("DEBUG> time {0[0]}:{0[1]}:{0[2]}".format(time)) + if is_debug: print ("DEBUG> data {}".format(data)) + outputwriter.writerow([hhmmss] + data[2:]) + output_file.flush() + + if msg == b'E\r\n': + if is_debug: print('DEBUG> Done receiving') + break + + +loop = asyncio.get_event_loop() +loop.run_until_complete(main(loop)) +loop.close() + + + +''' + 41 0D A. + + 33 31 34 32 4A 0D 3142J. + + 00 40 00 00 .@.. + + 4B 0D K. + + 33 31 34 32 4A 0D 3142J. + + 00 40 00 01 02 03 04 05 00 .@....... + + 4B 0D K. + + 4B 0D K. + + 4B 0D K. + + 4B 0D K. + + 4B 0D K. +''' diff --git a/data-logger-program/measure-13tc.DEF b/data-logger-program/measure-13tc.DEF new file mode 100644 index 0000000..e76ee51 --- /dev/null +++ b/data-logger-program/measure-13tc.DEF @@ -0,0 +1,120 @@ +11/11/2020 +20:15:35 +Created by Short Cut (4.3) +Short Cut Program: measure-13tc.DEF + +-Wiring for CR10- + + AM25T + 1H: HI + 1L: LO + AG: Ground + E1: VX + C2: RES + C1: CLK + G: G + 12V: 12V + +-Wiring for AM25T- + + Type K TC (1) + 1H: Yellow + 1L: Red + + Type K TC (2) + 2H: Yellow + 2L: Red + + Type K TC (3) + 3H: Yellow + 3L: Red + + Type K TC (4) + 4H: Yellow + 4L: Red + + Type K TC (5) + 5H: Yellow + 5L: Red + + Type K TC (6) + 6H: Yellow + 6L: Red + + Type K TC (7) + 7H: Yellow + 7L: Red + + Type K TC (8) + 8H: Yellow + 8L: Red + + Type K TC (9) + 9H: Yellow + 9L: Red + + Type K TC (10) + 10H: Yellow + 10L: Red + + Type K TC (11) + 11H: Yellow + 11L: Red + + Type K TC (12) + 12H: Yellow + 12L: Red + + Type K TC (13) + 13H: Yellow + 13L: Red + +-Measurement Labels- + + Default + 1 BattV + 2 ProgSig + + AM25T + 3 RTemp_C + + Type K TC (1) + 4 Temp_C_0 + + Type K TC (2) + 5 Temp_C_1 + + Type K TC (3) + 6 Temp_C_2 + + Type K TC (4) + 7 Temp_C_3 + + Type K TC (5) + 8 Temp_C_4 + + Type K TC (6) + 9 Temp_C_5 + + Type K TC (7) + 10 Temp_C_6 + + Type K TC (8) + 11 Temp_C_7 + + Type K TC (9) + 12 Temp_C_8 + + Type K TC (10) + 13 Temp_C_9 + + Type K TC (11) + 14 Temp_C_10 + + Type K TC (12) + 15 Temp_C_11 + + Type K TC (13) + 16 Temp_C_12 + +Estimated final storage locations used per day: 0 diff --git a/data-logger-program/measure-13tc.DLD b/data-logger-program/measure-13tc.DLD new file mode 100644 index 0000000..e5a14bb --- /dev/null +++ b/data-logger-program/measure-13tc.DLD @@ -0,0 +1,114 @@ +};CR10 +;measure-13tc.DLD +;Created by Short Cut (4.3) +;$ +;:BattV :ProgSig :RTemp_C :Temp_C_0 :Temp_C_1 +;:Temp_C_2 :Temp_C_3 :Temp_C_4 :Temp_C_5 :Temp_C_6 +;:Temp_C_7 :Temp_C_8 :Temp_C_9 :Temp_C_10:Temp_C_11 +;:Temp_C_12 +;$ + +;% +;Final Storage Label File for: measure-13tc.SCW +;Date: 11/11/2020 +;Time: 20:15:35 +; +;Estimated final storage locations used per day: 0 +;% + +MODE 1 +SCAN RATE 2.000 + +1:P10 +1:1 + +2:P92 +1:0 +2:1440 +3:30 + +3:P19 +1:2 + +4:P95 + +5:P86 +1:42 + +6:P6 +1:1 +2:23 +3:1 +4:1 +5:1200 +6:3 +7:-0.001 +8:0.09707 + +7:P59 +1:1 +2:3 +3:10.025 + +8:P16 +1:1 +2:3 +3:3 +4:1 +5:0 + +9:P87 +1:0 +2:13 + +10:P86 +1:71 + +11:P22 +1:1 +2:0 +3:1 +4:0 + +12:P86 +1:71 + +13:P22 +1:1 +2:0 +3:1 +4:0 + +14:P14 +1:1 +2:21 +3:1 +4:3 +5:3 +6:4-- +7:1 +8:0 + +15:P95 + +16:P86 +1:52 + +MODE 2 +SCAN RATE 10.0000 +1:P96 +1:71 + + +MODE 3 + +MODE 10 +1:28 +2:102 +3:0 + +MODE 12 +1:0000 +2:0000 +3:0000 + diff --git a/data-logger-program/measure-13tc.FSL b/data-logger-program/measure-13tc.FSL new file mode 100644 index 0000000..43f1508 --- /dev/null +++ b/data-logger-program/measure-13tc.FSL @@ -0,0 +1,5 @@ +Final Storage Label File for: measure-13tc.SCW +Date: 11/11/2020 +Time: 20:15:35 + +Estimated final storage locations used per day: 0 diff --git a/data-logger-program/measure-13tc.SCW b/data-logger-program/measure-13tc.SCW new file mode 100644 index 0000000..864ffe3 --- /dev/null +++ b/data-logger-program/measure-13tc.SCW @@ -0,0 +1,4956 @@ + + + True + + 101 + + + + 102 + + 1,BattV,0,0,0,0 + 2,ProgSig,0,0,0,0 + 3,RTemp_C,0,0,0,0 + 4,Temp_C_0,0,0,0,0 + 5,Temp_C_1,0,0,0,0 + 6,Temp_C_2,0,0,0,0 + 7,Temp_C_3,0,0,0,0 + 8,Temp_C_4,0,0,0,0 + 9,Temp_C_5,0,0,0,0 + 10,Temp_C_6,0,0,0,0 + 11,Temp_C_7,0,0,0,0 + 12,Temp_C_8,0,0,0,0 + 13,Temp_C_9,0,0,0,0 + 14,Temp_C_10,0,0,0,0 + 15,Temp_C_11,0,0,0,0 + 16,Temp_C_12,0,0,0,0 + + True + + 60 + + + Minutes + + + + 0 + False + 0 + Minutes + 60 + False + 0 + 0 + False + BattV + = + 0 + False + -1 + 0 + 0 + 0 + 0,BattV,=,0,BattV,=,0,0,0 + False + False + + + + .DLD + + + + + + + + + + + + + 9 + + + 0 + + + 0 + 0 + 0 + 0000 + 0000 + 0000 + + + 3 + + + + 7434 + .DLD + C:\Program Files (x86)\Campbellsci\SCWin\cr10.dlf + CR10 + 91 + CR10 + 0 + 0 + 0 + False + + + Use datalogger support software to transmit %s to the CR10. + + high + low + Minutes + 1 + Seconds + 0 + True + False + False + False + 1|1440 + 1|8191 + False + 0 + 9 + 8 + + + SEAnalog + 0 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 0 + + + + 2 + 1 + 2 + 0 + 0 + + + 1 + + + + 3 + 1 + 3 + 0 + 0 + + + 2 + + + + 4 + 1 + 4 + 0 + 0 + + + 3 + + + + 5 + 1 + 5 + 0 + 0 + + + 4 + + + + 6 + 1 + 6 + 0 + 0 + + + 5 + + + + 7 + 1 + 7 + 0 + 0 + + + 12 + + + + 8 + 1 + 8 + 0 + 0 + + + 13 + + + + 9 + 1 + 9 + 0 + 0 + + + 14 + + + + 10 + 1 + 10 + 0 + 0 + + + 15 + + + + 11 + 1 + 11 + 0 + 0 + + + 16 + + + + 12 + 1 + 12 + 0 + 0 + + + 17 + + + + + + DIFFAnalog + 1 + -1 + + + 1 + 2 + 1 + 0 + 0 + + + 0 + 1 + + + + 2 + 2 + 2 + 0 + 0 + + + 2 + 3 + + + + 3 + 2 + 3 + 0 + 0 + + + 4 + 5 + + + + 4 + 2 + 4 + 0 + 0 + + + 12 + 13 + + + + 5 + 2 + 5 + 0 + 0 + + + 14 + 15 + + + + 6 + 2 + 6 + 0 + 0 + + + 16 + 17 + + + + + + Excitation + 2 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 9 + + + + 2 + 1 + 2 + 0 + 0 + + + 8 + + + + 3 + 1 + 3 + 0 + 0 + + + 19 + + + + + + Pulse + 3 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 24 + + + + 2 + 1 + 2 + 0 + 0 + + + 25 + + + + + + Control + 4 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 33 + + + + 2 + 1 + 2 + 0 + 0 + + + 32 + + + + 3 + 1 + 3 + 0 + 0 + + + 31 + + + + 4 + 1 + 4 + 0 + 0 + + + 30 + + + + 5 + 1 + 5 + 0 + 0 + + + 29 + + + + 6 + 1 + 6 + 0 + 0 + + + 28 + + + + 7 + 1 + 7 + 0 + 0 + + + 27 + + + + 8 + 1 + 8 + 0 + 0 + + + 26 + + + + + + AG + 5 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 6 + + + + 2 + 1 + 2 + 0 + 0 + + + 7 + + + + 3 + 1 + 3 + 0 + 0 + + + 10 + + + + 4 + 1 + 4 + 0 + 0 + + + 11 + + + + 5 + 1 + 5 + 0 + 0 + + + 18 + + + + 6 + 1 + 6 + 0 + 0 + + + 20 + + + + 7 + 1 + 7 + 0 + 0 + + + 21 + + + + 8 + 1 + 8 + 0 + 0 + + + 22 + + + + 9 + 1 + 9 + 0 + 0 + + + 23 + + + + + + G + 6 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 36 + + + + 2 + 1 + 2 + 0 + 0 + + + 37 + + + + 3 + 1 + 3 + 0 + 0 + + + 38 + + + + 4 + 1 + 4 + 0 + 0 + + + 39 + + + + 5 + 1 + 5 + 0 + 0 + + + 40 + + + + 6 + 1 + 6 + 0 + 0 + + + 41 + + + + 7 + 1 + 7 + 0 + 0 + + + 42 + + + + 8 + 1 + 8 + 0 + 0 + + + 43 + + + + 9 + 1 + 9 + 0 + 0 + + + 44 + + + + + + 12V + 7 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 45 + + + + 2 + 1 + 2 + 0 + 0 + + + 46 + + + + 3 + 1 + 3 + 0 + 0 + + + 47 + + + + + + 5V + 8 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 34 + + + + 1 + 1 + 2 + 0 + 0 + + + 35 + + + + + + SDI-12 + 9 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 33 + + + + 2 + 1 + 2 + 0 + 0 + + + 32 + + + + 3 + 1 + 3 + 0 + 0 + + + 31 + + + + 4 + 1 + 4 + 0 + 0 + + + 30 + + + + 5 + 1 + 5 + 0 + 0 + + + 29 + + + + 6 + 1 + 6 + 0 + 0 + + + 28 + + + + 7 + 1 + 7 + 0 + 0 + + + 27 + + + + 8 + 1 + 8 + 0 + 0 + + + 26 + + + + + + + + 1 + 0 + 1H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + Mux_Diff + 0 + 78 + AM25T + + HI + + + 1 + True + + + + + 1 + 0 + 1L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + Mux_Diff + 0 + 78 + AM25T + + LO + + + 1 + True + + + + + 0 + 0 + 2H + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + 2L + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + 3H + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + 3L + 0 + + + -1 + -1 + -1 + + + + 0.25 + 0 + AG + 0 + + + -1 + -1 + -1 + + + 100 + 25 + + Mux_AG + 0 + 78 + AM25T + + GRND + + + 5 + True + + + + + 0 + 0 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + E2 + 0 + + + -1 + -1 + -1 + + + + 0.1 + 0 + E1 + 0 + AM25TEx + + -1 + -1 + -1 + + + 100 + 10 + + Mux_EX + 0 + 78 + AM25T + + VX + + + 2 + True + + + + + 0 + 0 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 4H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 4L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 5H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 5L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 6H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 6L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + E3 + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + AG + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + P1 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + P2 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C8 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C7 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C6 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C5 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C4 + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + C3 + 0 + + + -1 + -1 + -1 + + + + 1 + 2 + C2 + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + Mux_RES + 0 + 78 + AM25T + + RES + + + 4 + True + + + + + 0.1 + 2 + C1 + 0 + MuxClk + + -1 + -1 + -1 + + + 100 + 10 + + Mux_Clk + 0 + 78 + AM25T + + CLK + + + 4 + True + + + + + 0 + 2 + 5V + 0 + + + -1 + -1 + -1 + + + + 0 + 2 + 5V + 0 + + + -1 + -1 + -1 + + + + 0.25 + 3 + G + 0 + + + -1 + -1 + -1 + + + 100 + 25 + + Mux_G + 0 + 78 + AM25T + + G + + + 6 + True + + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + G + 0 + + + -1 + -1 + -1 + + + + 0.1 + 3 + 12V + 0 + + + -1 + -1 + -1 + + + 100 + 10 + + Mux_12V + 0 + 78 + AM25T + + 12V + + + 7 + True + + + + + 0 + 3 + 12V + 0 + + + -1 + -1 + -1 + + + + 0 + 3 + 12V + 0 + + + -1 + -1 + -1 + + + + + + False + default.plt + 2.11 + 0 + + + Default Measurements + 3.2 + Default + False + True + 0 + 7434 + False + False + + False + -1 + 0 + 1 + True + True + False + Default + + + + + Battery Voltage + Battery + 0 + 0 + sample,average,stddev,minimum,maximum + BattV + Volts + 1 + Volts + True + False + True + True + + False + 1 + False + dtFloat + 0 + True + + + + + Program Signature + signature + 0 + 0 + sample + ProgSig + + 1 + + True + False + True + True + + False + 2 + False + dtFloat + 0 + True + + + + + False + table.plt + 1.1 + 0 + + + Table Measurements + 3.1 + n/a + True + False + n/a + 9 + 1.1 + + Year_RTM + Day_RTM + Hour_Minute_RTM + + + 0 + 0 + False + 0 + + + + + + P77Parm1 + 0 + 0 + + 1220 + + 0 + + True + False + False + False + + False + + + + + + + True + AM25T.MUX + 2.9 + 21300 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\am25t.jpg + AM25T Multiplexer + 2.7 + AM25T + False + True + 0 + 7434 + False + False + + True + -1 + 0 + 78 + True + True + False + AM25T + + + + + DiffAnalog + Mux_Diff + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + AG + Mux_AG + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + Excitation + Mux_EX + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + Control + Mux_Clk + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + Control + Mux_RES + 0 + 1 + + 2 + + 1 + + True + False + False + False + + False + + + + + G + Mux_G + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + 12V + Mux_12V + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + AM25T Reference Temperature + Mux_Ref + 21300 + 0 + sample,average,stddev,maximum,minimum + RTemp_C + Deg C + 1 + Deg C + True + False + True + True + + False + 3 + False + dtFloat + 0 + True + + + + + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + + + + 8 + + + + + + 62533 + .DLD + AM25T.MUX + AM25T + 0 + AM25T + 0 + 0 + 0 + False + True + 0 + 5 + 30 + + + DIFFAnalog + 0 + -1 + + + 1 + 2 + 1 + 0 + 0 + + + 9 + 10 + + + + 2 + 2 + 2 + 0 + 0 + + + 12 + 13 + + + + 3 + 2 + 3 + 0 + 0 + + + 15 + 16 + + + + 4 + 2 + 4 + 0 + 0 + + + 18 + 19 + + + + 5 + 2 + 5 + 0 + 0 + + + 21 + 22 + + + + 6 + 2 + 6 + 0 + 0 + + + 24 + 25 + + + + 7 + 2 + 7 + 0 + 0 + + + 27 + 28 + + + + 8 + 2 + 8 + 0 + 0 + + + 30 + 31 + + + + 9 + 2 + 9 + 0 + 0 + + + 33 + 34 + + + + 10 + 2 + 10 + 0 + 0 + + + 36 + 37 + + + + 11 + 2 + 11 + 0 + 0 + + + 39 + 40 + + + + 12 + 2 + 12 + 0 + 0 + + + 42 + 43 + + + + 13 + 2 + 13 + 0 + 0 + + + 45 + 46 + + + + 14 + 2 + 14 + 0 + 0 + + + 48 + 49 + + + + 15 + 2 + 15 + 0 + 0 + + + 51 + 52 + + + + 16 + 2 + 16 + 0 + 0 + + + 54 + 55 + + + + 17 + 2 + 17 + 0 + 0 + + + 57 + 58 + + + + 18 + 2 + 18 + 0 + 0 + + + 60 + 61 + + + + 19 + 2 + 19 + 0 + 0 + + + 63 + 64 + + + + 20 + 2 + 20 + 0 + 0 + + + 66 + 67 + + + + 21 + 2 + 21 + 0 + 0 + + + 69 + 70 + + + + 22 + 2 + 22 + 0 + 0 + + + 72 + 73 + + + + 23 + 2 + 23 + 0 + 0 + + + 75 + 76 + + + + 24 + 2 + 24 + 0 + 0 + + + 78 + 79 + + + + 25 + 2 + 25 + 0 + 0 + + + 81 + 82 + + + + + + G + 1 + -1 + + + 1 + 1 + 1 + 0 + 0 + + + 11 + + + + 2 + 1 + 2 + 0 + 0 + + + 14 + + + + 3 + 1 + 3 + 0 + 0 + + + 17 + + + + 4 + 1 + 4 + 0 + 0 + + + 20 + + + + 5 + 1 + 5 + 0 + 0 + + + 23 + + + + 6 + 1 + 6 + 0 + 0 + + + 26 + + + + 7 + 1 + 7 + 0 + 0 + + + 29 + + + + 8 + 1 + 8 + 0 + 0 + + + 32 + + + + 9 + 1 + 9 + 0 + 0 + + + 35 + + + + 10 + 1 + 10 + 0 + 0 + + + 38 + + + + 11 + 1 + 11 + 0 + 0 + + + 41 + + + + 12 + 1 + 12 + 0 + 0 + + + 44 + + + + 13 + 1 + 13 + 0 + 0 + + + 47 + + + + 14 + 1 + 14 + 0 + 0 + + + 50 + + + + 15 + 1 + 15 + 0 + 0 + + + 53 + + + + 16 + 1 + 16 + 0 + 0 + + + 56 + + + + 17 + 1 + 17 + 0 + 0 + + + 59 + + + + 18 + 1 + 18 + 0 + 0 + + + 62 + + + + 19 + 1 + 19 + 0 + 0 + + + 65 + + + + 20 + 1 + 20 + 0 + 0 + + + 68 + + + + 21 + 1 + 21 + 0 + 0 + + + 71 + + + + 22 + 1 + 22 + 0 + 0 + + + 74 + + + + 23 + 1 + 23 + 0 + 0 + + + 77 + + + + 24 + 1 + 24 + 0 + 0 + + + 80 + + + + 25 + 1 + 25 + 0 + 0 + + + 83 + + + + + + + + 0 + 0 + 12V + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + G + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + CLK + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + RES + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + VX + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + GRND + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + HI + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + LO + 0 + + + -1 + -1 + -1 + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 1H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 79 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 1L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 79 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 2H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 80 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 2L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 80 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 3H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 81 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 3L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 81 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 4H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 82 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 4L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 82 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 5H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 83 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 5L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 83 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 6H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 84 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 6L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 84 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 7H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 85 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 7L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 85 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 8H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 86 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 8L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 86 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 9H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 87 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 9L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 87 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 10H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 88 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 10L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 88 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 0 + 11H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 89 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 0 + 11L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 89 + Type K TC + + Red + + + 0 + True + + + + + 0 + 0 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 1 + 12H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 90 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 1 + 12L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 90 + Type K TC + + Red + + + 0 + True + + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 1 + 1 + 13H + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 91 + Type K TC + + Yellow + + + 0 + True + + + + + 1 + 1 + 13L + 0 + + + -1 + -1 + -1 + + + 100 + 100 + + TCDiff + 0 + 91 + Type K TC + + Red + + + 0 + True + + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 14H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 14L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 15H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 15L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 16H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 16L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 17H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 17L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 18H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 18L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 19H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 19L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 20H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 20L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 21H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 21L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 22H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 22L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 23H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 23L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 24H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 24L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 25H + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + 25L + 0 + + + -1 + -1 + -1 + + + + 0 + 1 + Ground + 0 + + + -1 + -1 + -1 + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + False + False + + False + -1 + 13 + 79 + True + True + False + Type K TC + + + + + How many Type K TC sensors? (Max=25) + RepsHandle + 0 + 0 + + 13 + + 1 + + True + False + True + True + + False + 0 + False + 4 + 1 + 25 + + + + + DiffAnalog + TCDiff + 0 + 1 + + 1 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_0 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 4 + True + dtFloat + 0 + True + + + + + Temperature range (deg C) if reference temperature is 20 deg C + TCRange + 21110 + 0 + + -44 to 80 + + 1 + + True + False + True + True + + False + 0 + False + -44 to 80,-270 to 203,-270 to 621,-270 to 1372 + 1 + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 80 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 2 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_1 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 5 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 81 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 3 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_2 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 6 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 82 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 4 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_3 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 7 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 83 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 5 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_4 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 8 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 84 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 6 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_5 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 9 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 85 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 7 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_6 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 10 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 86 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 8 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_7 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 11 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 87 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 9 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_8 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 12 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 88 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 10 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_9 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 13 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 89 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 11 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_10 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 14 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 90 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 12 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_11 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 15 + False + dtFloat + 0 + True + + + + + + True + tck25.scs + 3.4 + 21110 + scwin.chm + C:\Program Files (x86)\Campbellsci\SCWin\Images\tck.jpg + Temperature\Type K Thermocouple + 2.9 + Type K TC + False + True + 0 + 62533 + True + False + + False + 79 + 0 + 91 + True + True + False + Type K TC + + + + + DiffAnalog + TCDiff + 0 + 1 + + 13 + + 1 + + True + False + False + False + + False + + + + + Temperature + TCTemp + 21110 + 0 + sample,average,stddev,maximum,minimum,eto + Temp_C_12 + Deg C,Deg F,K + 1 + Deg C + True + False + True + True + + True + 16 + False + dtFloat + 0 + True + + + + + + 78 + + + + \ No newline at end of file diff --git a/data-logger-program/test2-comments.DLD b/data-logger-program/test2-comments.DLD new file mode 100644 index 0000000..46780b5 --- /dev/null +++ b/data-logger-program/test2-comments.DLD @@ -0,0 +1,116 @@ +};CR10 +;test2.DLD +;Created by Short Cut (4.3) +;$ +;:BattV :ProgSig :RTemp_C :Temp_C :Temp_C_1 +;:Temp_C_2 :Temp_C_3 :Temp_C_4 :Temp_C_5 :Temp_C_6 +;:Temp_C_7 :Temp_C_8 :Temp_C_9 :Temp_C_10:Temp_C_11 +;:Temp_C_12:Temp_C_13:Temp_C_14:Temp_C_15:Temp_C_16 +;:Temp_C_17:Temp_C_18:Temp_C_19:Temp_C_20:Temp_C_21 +;:Temp_C_22:Temp_C_23:Temp_C_24 +;$ + +;% +;Final Storage Label File for: test2.SCW +;Date: 9/28/2020 +;Time: 19:47:37 +; +;Estimated final storage locations used per day: 0 +;% + +MODE 1 ; Program Table 1 +SCAN RATE 1.0000 ; Execution interval + +1:P10 +1:1 + +2:P92 ; IF TIME +1:0 +2:1440 +3:30 ; DO + +3:P19 ; Move Program Signature to +1:2 ; Location + +4:P95 ; END + +5:P86 ; DO Command +1:42 ; Set Port 2 High + +6:P6 ; Full bridge with single differential measurement +1:1 ; Reps +2:23 ; Range +3:1 ; Differential channel number +4:1 ; Excitation channel number +5:1200 ; Excitation voltage (mV) +6:3 ; Location +7:-0.001 ; Multiplier +8:0.09707 ; Offset + +7:P59 ; Bridge Transform +1:1 ; +2:3 +3:10.025 + +8:P16 +1:1 +2:3 +3:3 +4:1 +5:0 + +9:P87 ; LOOP +1:0 ; Delay +2:25 ; Count + +10:P86 ; DO +1:71 ; Pulse port 1 + +11:P22 ; Excitation with delay +1:1 +2:0 +3:1 +4:0 + +12:P86 ; DO +1:71 ; Pulse port 1 + +13:P22 ; Excitation with delay +1:1 +2:0 +3:1 +4:0 + +14:P14 ; Thermocouple temperature differential measurement +1:1 ; Reps +2:21 ; Range +3:1 ; Differential channel number +4:3 ; Thermocouple type +5:3 ; Reference temperature location +6:4-- ; Destination location +7:1 ; Multiplier +8:0 ; Offset + +15:P95 ; END LOOP + +16:P86 ; DO +1:52 ; Set Port 2 Low + +MODE 2 +SCAN RATE 10.0000 +1:P96 +1:71 + + +MODE 3 + +MODE 10 +1:28 +2:102 +3:0 + +MODE 12 +1:0000 +2:0000 +3:0000 +