#!/usr/bin/env python
# -*- coding: UTF8 -*-

import serial
import sys
from time import sleep

def main():

	output = ""
	split_output = []
	model = ""
	serial_number = ""
	modded_serial_number = ""
	apply_changes = ""
	serial_number_setting_string = ""

	try:
		serial_port = sys.argv[1]
		print "Using serial port: " + serial_port
	except IndexError:
		print "No serial port provided!"

	try:
		ser = serial.Serial(serial_port, 9600, timeout=1)
	except:
		print "Invalid serial port!"

	ser.write("*IDN?\n")
	output = ser.readline()
	split_output = output.split(',')

	model = split_output[1]
	serial_number = split_output[2]

	if model == "DS1052E" and len(serial_number) == 14:
		modded_serial_number = serial_number[0:4] + 'B' + serial_number[5:14]
		print "Scope model: " + model + "\nSerial number: " + serial_number + "\nModded serial number: " + modded_serial_number
		apply_changes = raw_input("If this looks correct, apply changes to scope? (y/n) ")

		if apply_changes.lower() == "y":
			ser.write(":INFO:MODEL DS1102E\n")
			sleep(2)
			serial_number_setting_string = ":INFO:SERIAL " + modded_serial_number + "\n"
			ser.write(serial_number_setting_string)
			
			sleep(3)
			ser.write("*IDN?\n")
			output = ser.readline()
			split_output = output.split(',')

			print "\nYour scope has been modded, new scope info:"
			print "Scope model: " + split_output[1] + "\nSerial number: " + split_output[2]
			print "Enjoy your new extra bandwidth!"

	else:
		print "Scope model not DS1052E or serial number is invalid! Aborting"

main()
