From: p15692025051 <846603105@qq.com> Date: Mon, 9 Oct 2023 01:24:58 +0000 (+0800) Subject: 计算器应用添加 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=7f2135a1d93a34fe0324d70394458a9e5c20a157;p=mirrors%2FASR1603_G5.git 计算器应用添加 --- diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py index d7df6833..b0d2a6ab 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py @@ -1,7 +1,7 @@ import _thread import usys - - +import uos +import utime class EventStore(object): def __init__(self): self.map = dict() diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/Makefile b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/Makefile index d0ebceb3..979c982f 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/Makefile +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/Makefile @@ -966,6 +966,7 @@ frozen_mpy_list = $(BUILD)/_boot.mpy \ $(BUILD)/ui_WatchFaceScreen.mpy \ $(BUILD)/ui_health.mpy \ $(BUILD)/main_init.mpy \ + $(BUILD)/calculator.mpy \ $(BUILD)/versions.mpy \ endif diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_1.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_1.py index 9eac0c5b..8666de66 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_1.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_1.py @@ -1,2 +1,2 @@ -from usr.main_init import main_init +from main_init import main_init main_init() \ No newline at end of file diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py index 0a2f8631..abd7c9da 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py @@ -94,6 +94,7 @@ def main_init(): ui.add_screen(WechatScreen()) from alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen from ui_health import HealthScreen + from calculator import calculatorScreen ui.add_screen(ClkListScreen()) ui.add_screen(_ui.CountdownEndScreen()) ui.add_screen(NewEditClk()) @@ -145,7 +146,7 @@ def main_init(): ui.add_screen(_ui.RemoveMessageScreen()) ui.add_screen(_ui.keyboardScreen()) ui.add_screen(_ui.classMgrPopupScreen()) - ui.add_screen(_ui.calculatorScreen()) + ui.add_screen(calculatorScreen()) ui.add_screen(_ui.cameraScreen()) ui.add_screen(_ui.cameraalbumScreen()) ui.add_screen(_ui.cameraVdieoScreen()) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py index e94509f9..83716e65 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py @@ -172,7 +172,7 @@ class SockManager(Abstract): self.publish_timer.start(1000, 0, self.publish_timer_cb) except Exception as e: - usys.print_exception(e) + #usys.print_exception(e) self.run_flag = False else: self.run_flag = True @@ -283,8 +283,8 @@ class SockManager(Abstract): data = b'' except Exception as e: - print("TCP:ERROR:recv:") - usys.print_exception(e) + #print("TCP:ERROR:recv:") + #usys.print_exception(e) self.run_flag = False self.reconnect() diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py index 15b52e5b..ee79acc0 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py @@ -7795,1138 +7795,6 @@ class calendar_Screen(Screen):#日历 -calculator_CALL_MAX_DATA = 16 - -calculator_line_points = [{"x":0,"y":0},{"x":0,"y":40}] -calculator_screen = None -calculator_line = None -calculator_label = None -calculator_one = None -calculator_two = None -calculator_three = None -calculator_four = None -calculator_five = None -calculator_six = None -calculator_seven = None -calculator_eight = None -calculator_nine = None -calculator_start = None -calculator_zero = None -calculator_hash = None -calculator_call = None -calculator_call_btn = None -calculator_contact = None -calculator_contact_btn = None -calculator_delete = None -calculator_delete_btn = None - -class calculatorScreen(Screen): - NAME = "calculator" - - def __init__(self): - - super().__init__() - self.meta = None - self.phone_num = '' - self.phone_list = [] - self.button = 0 - self.timer = osTimer() - self.timer_cb = 0 - self.count = 0 - - - - def initialization(self): - self.phone_num='' - self.phone_list = [] - global calculator_screen ,calculator_line,calculator_label,calculator_one,calculator_two,calculator_three,calculator_four,calculator_five,calculator_six,calculator_seven,calculator_eight,calculator_nine,calculator_start,\ - calculator_zero,calculator_hash,calculator_call,calculator_call_btn,calculator_contact,calculator_contact_btn,calculator_delete,calculator_delete_btn - - size_x = 36 #按钮大小 - size_y = 22 - start_x = 5 - start_y = 25 - - offset_y = 4 - if calculator_screen == None: - calculator_screen = lv.obj() - print("phone_screen") - calculator_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - - # phone_line = lv.line(phone_screen) - # phone_line.set_points(phone_line_points,2) - # phone_line.set_pos(125,5) - # phone_line.set_size(2,18) - # phone_line.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) - # phone_line.add_style(style_line,0) - calculator_label_screen = lv.obj(calculator_screen) - calculator_label_screen.set_pos(0,0) - calculator_label_screen.set_size(128,16) - calculator_label_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) - print("phone_screen") - calculator_label_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - - - calculator_label = lv.label(calculator_label_screen) - calculator_label.set_pos(0, 0) - calculator_label.set_size(0, 20) - calculator_label.set_text(" ") - calculator_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT) - - calculator_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - - calculator_one = lv.img(calculator_screen) - calculator_one.set_src("U:/static/IMAGE_NUMBER_KEY1_ICON.png") - calculator_one.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_one.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_one.set_pos(start_x, start_y) - calculator_one.set_size(size_x, size_y) - - calculator_two = lv.img(calculator_screen) - calculator_two.set_size(size_x, size_y) - calculator_two.set_src("U:/static/IMAGE_NUMBER_KEY2_ICON.png") - calculator_two.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_two.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_two.set_pos(start_x+size_x+5*1, start_y) - - calculator_three = lv.img(calculator_screen) - calculator_three.set_size(size_x, size_y) - calculator_three.set_src("U:/static/IMAGE_NUMBER_KEY3_ICON.png") - calculator_three.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_three.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_three.set_pos(start_x+size_x*2+5*2, start_y) - - calculator_four = lv.img(calculator_screen) - calculator_four.set_size(size_x, size_y) - calculator_four.set_src("U:/static/IMAGE_NUMBER_KEY4_ICON.png") - calculator_four.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_four.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_four.set_pos(start_x, start_y+size_y+offset_y) - - calculator_five = lv.img(calculator_screen) - calculator_five.set_size(size_x, size_y) - calculator_five.set_src("U:/static/IMAGE_NUMBER_KEY5_ICON.png") - calculator_five.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_five.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_five.set_pos(start_x+size_x+5*1, start_y+size_y+offset_y) - - calculator_six = lv.img(calculator_screen) - calculator_six.set_size(size_x, size_y) - calculator_six.set_src("U:/static/IMAGE_NUMBER_KEY6_ICON.png") - calculator_six.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_six.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_six.set_pos(start_x+size_x*2+5*2, start_y+size_y+offset_y) - - calculator_seven = lv.img(calculator_screen) - calculator_seven.set_size(size_x, size_y) - calculator_seven.set_src("U:/static/IMAGE_NUMBER_KEY7_ICON.png") - calculator_seven.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_seven.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_seven.set_pos(start_x, start_y+size_y*2+offset_y*2) - - calculator_eight = lv.img(calculator_screen) - calculator_eight.set_size(size_x, size_y) - calculator_eight.set_src("U:/static/IMAGE_NUMBER_KEY8_ICON.png") - calculator_eight.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_eight.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_eight.set_pos(start_x+size_x+5*1, start_y+size_y*2+offset_y*2) - - calculator_nine = lv.img(calculator_screen) - calculator_nine.set_size(size_x, size_y) - calculator_nine.set_src("U:/static/IMAGE_NUMBER_KEY9_ICON.png") - calculator_nine.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_nine.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_nine.set_pos(start_x+size_x*2+5*2, start_y+size_y*2+offset_y*2) - - # phone_start = lv.img(phone_screen) - # phone_start.set_size(size_x, size_y) - # phone_start.set_src("U:/static/IMAGE_NUMBER_KEYSTAR_ICON.png") - # phone_start.add_flag(lv.obj.FLAG.CLICKABLE) - # phone_start.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - # phone_start.set_pos(start_x, start_y+size_y*3) - - # calculator_delete = lv.img(calculator_screen) - # calculator_delete.set_size(size_x, size_y) - # calculator_delete.set_src("U:/static/IMAGE_BUTTON_DELKEY.png") - # calculator_delete.add_flag(lv.obj.FLAG.CLICKABLE) - # calculator_delete.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - # calculator_delete.set_pos(start_x, start_y+size_y*3+offset_y*3) - - calculator_delete = lv.label(calculator_screen) - calculator_delete.set_pos(start_x, start_y+size_y*3+offset_y*3) - calculator_delete.set_size(start_x+size_x+5*1-start_x, 128-(start_y+size_y*3+offset_y*3)) - calculator_delete.set_text("/") - calculator_delete.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_delete.set_long_mode(lv.label.LONG.CLIP) - calculator_delete.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_delete.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - - - - calculator_zero = lv.img(calculator_screen) - calculator_zero.set_size(size_x, size_y) - calculator_zero.set_src("U:/static/IMAGE_NUMBER_KEY0_ICON.png") - calculator_zero.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_zero.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_zero.set_pos(start_x+size_x+5*1, start_y+size_y*3+offset_y*3) - - calculator_call = lv.label(calculator_screen) - calculator_call.set_pos(start_x+size_x*2+5*2, start_y+size_y*3+offset_y*3) - calculator_call.set_size(128-(start_x+size_x*2+5*2), 128-(start_y+size_y*3+offset_y*3)) - calculator_call.set_text("-") - calculator_call.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT) - calculator_call.set_long_mode(lv.label.LONG.CLIP) - calculator_call.add_flag(lv.obj.FLAG.CLICKABLE) - calculator_call.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - # calculator_call = lv.img(calculator_screen) - # calculator_call.set_size(size_x, size_y) - # calculator_call.set_src("U:/static/IMAGE_BUTTON_DIAL.png") - # calculator_call.add_flag(lv.obj.FLAG.CLICKABLE) - # calculator_call.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - # calculator_call.set_pos(start_x+size_x*2+5*2, start_y+size_y*3+offset_y*3) - - - - self.meta = calculator_screen - - calculator_one.add_event_cb(lambda e: EventMesh.callback_wrapper(self.one(e)), - lv.EVENT.CLICKED, None) - calculator_two.add_event_cb(lambda e: EventMesh.callback_wrapper(self.two(e)), - lv.EVENT.CLICKED, None) - calculator_three.add_event_cb(lambda e: EventMesh.callback_wrapper(self.three(e)), - lv.EVENT.CLICKED, None) - calculator_four.add_event_cb(lambda e: EventMesh.callback_wrapper(self.four(e)), - lv.EVENT.CLICKED, None) - calculator_five.add_event_cb(lambda e: EventMesh.callback_wrapper(self.five(e)), - lv.EVENT.CLICKED, None) - calculator_six.add_event_cb(lambda e: EventMesh.callback_wrapper(self.six(e)), - lv.EVENT.CLICKED, None) - calculator_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) - - calculator_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), - lv.EVENT.LONG_PRESSED, None)#长按显示+ - - calculator_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.endpressed_start(e)), - lv.EVENT.RELEASED, None)#释放按键 - - calculator_eight.add_event_cb(lambda e: EventMesh.callback_wrapper(self.eight(e)), - lv.EVENT.CLICKED, None) - calculator_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) - - calculator_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), - lv.EVENT.LONG_PRESSED, None)#长按显示+ - - calculator_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.nine_endpressed_start(e)), - lv.EVENT.RELEASED, None)#释放按键 - - # phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.zero(e)), - # lv.EVENT.CLICKED, None) - - calculator_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None)#短按显示* - - calculator_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), - lv.EVENT.LONG_PRESSED, None)#长按显示+ - - calculator_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.zero_endpressed_start(e)), - lv.EVENT.RELEASED, None)#释放按键 - - calculator_call.add_event_cb(lambda e: EventMesh.callback_wrapper(self.call(e)), - lv.EVENT.CLICKED, None) - # phone_contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.contact(e)), - # lv.EVENT.CLICKED, None) - calculator_delete.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete(e)), - lv.EVENT.CLICKED, None) - - # phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - # lv.EVENT.CLICKED, None)#短按显示* - - # phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), - # lv.EVENT.LONG_PRESSED, None)#长按显示+ - - # phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.endpressed_start(e)), - # lv.EVENT.RELEASED, None)#释放按键 - - - # phone_hash.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hash(e)), - # lv.EVENT.CLICKED, None) - - - self.phone_num='' - self.calcul_num='' - self.phone_list = [] - self.one_buf = '' - self.two_buf = '' - self.operator = '' - self.result_buf = ''#计算结果 - - - self.count = 0 - self.show_num() - if calculator_label != None: - calculator_label.set_pos(0, 0) - calculator_label.set_size(0, 0) - calculator_label.set_text(" ") - #phone_label.set_text(" ") - # print("self.phone_list :{} self.phone_num:{}".format(self.phone_list,self.phone_num)) - if self.timer_cb == 0: - self.timer_cb = 1 - # self.timer.start(1000,1,self.refresh_line) - - - def refresh_line(self,e): - return - if self.count > 2 : - self.count = 1 - if self.count%2 == 0: - phone_line.clear_flag(lv.obj.FLAG.HIDDEN) - else: - phone_line.add_flag(lv.obj.FLAG.HIDDEN) - self.count+=1 - def one(self,e): - self.input_num("1") - - def two(self,e): - self.input_num("2") - - def three(self,e): - self.input_num(".") - # self.input_num("3") - - def four(self,e): - self.input_num("4") - - def five(self,e): - self.input_num("5") - - def six(self,e): - self.input_num("6") - - def seven(self,e): - self.input_num("7") - - def eight(self,e): - self.input_num("8") - - def nine(self,e): - self.input_num("9") - - def zero(self,e): - self.input_num("0") - - def start(self,e): - self.button = 0 - - def pressed_start(self,e): - self.button = 1 - def Close(self): - self.timer_cb = 0 - self.timer.stop() - - def nine_endpressed_start(self,e): - - if self.button == 1:#长按 - self.input_char("=") - - else:#短按 - self.input_num("9") - - - - def zero_endpressed_start(self,e): - - if self.button == 1:#长按 - self.input_char("+") - else:#短按 - self.input_num("0") - - - - def endpressed_start(self,e): - if self.button == 1:#长按 - self.input_char("*") - else:#短按 - self.input_num("7") - - - def hash(self,e): - - self.calculator_fun("#") - - def is_all_zero(self,lst): - return all(element == 0 for element in lst) - - def input_num(self,msg):#输入数字 - if msg == 'delete': - if len(self.result_buf) == 0: - if self.one_buf != '': - if self.operator != '': - if self.two_buf != '': - self.phone_list = list(self.two_buf) - self.phone_list.pop() - self.two_buf = ''.join(self.phone_list) - print("two_buf!!!") - else: - self.phone_list = list(self.operator) - self.phone_list.pop() - self.operator = ''.join(self.phone_list) - print("self.operator!!!") - else: - self.phone_list = list(self.one_buf) - self.phone_list.pop() - self.one_buf = ''.join(self.phone_list) - print("self.one_buf!!!") - self.show_result()#显示计算结果以及输入结果 - return - global calculator_label - print("input_num",msg) - if len(self.result_buf) > 0: - self.result_buf = '' - self.two_buf = '' - self.one_buf = '' - - if self.one_buf == '':#第一个数字为空 - if msg == '.':#如果第一个数据为空并且输入的第一个数字是.就直接置0.开始 - self.one_buf = "0." - else: - self.one_buf = self.one_buf+msg - else: - if self.operator == '':#没有特殊字符 + - / * 一直会将数字添加到数字1中 否则添加到数字2中 - if self.one_buf.find('.') == -1: - if len(self.one_buf) <= 10 and len(self.one_buf) > 0:#第二个数据超过10个数据不让输入 0 - if len(self.one_buf) == 1 and self.one_buf == '0' and msg != '.': - self.one_buf = msg - else: - self.one_buf = self.one_buf+msg#还是第一个数据继续加 0 - pass - else: - if len(self.one_buf) > 10: - print("大于是10位数字") - pass - else: - if msg == '.': - self.one_buf = '0.' - else: - self.one_buf = self.one_buf+msg#还是第一个数据继续加 0 - pass - else: - if self.one_buf.find('.') != -1:#找到一个点如果还是点的话不让点 - if msg != '.': - if len(self.one_buf) <= 10: - self.one_buf = self.one_buf+msg#还是第一个数据继续加 0 - - else: - - if self.two_buf.find('.') == -1: - if len(self.two_buf) <= 10 and len(self.two_buf) > 0:#第二个数据超过10个数据不让输入 0 - if len(self.two_buf) == 1 and self.two_buf == '0' and msg != '.': - self.two_buf = msg - else: - self.two_buf = self.two_buf+msg#还是第一个数据继续加 0 - pass - else: - if len(self.two_buf) > 10: - pass - else: - if msg == '.': - self.two_buf = '0.' - else: - self.two_buf = self.two_buf+msg#还是第一个数据继续加 0 - pass - else: - if self.two_buf.find('.') != -1: - if msg != '.': - if len(self.two_buf) <= 10: - self.two_buf = self.two_buf+msg#还是第一个数据继续加 0 - - - self.show_result()#显示计算结果以及输入结果 - pass - - - def input_char(self,msg):#输入字符 - - if self.one_buf != '': - if self.one_buf.find(".") != -1: - tmp = self.one_buf.split(".")[1] - if len(tmp) == 0: - self.one_buf = self.one_buf.split('.')[0] - if self.two_buf != '': - if self.two_buf.find(".") != -1: - tmp = self.two_buf.split(".")[1] - if len(tmp) == 0: - self.two_buf = self.two_buf.split('.')[0] - - global calculator_label - if len(self.two_buf) != 0 and float(self.two_buf) == 0:#0.000 - if self.operator == '/' and (msg == '/' or msg == '=' or msg == '*'or msg == '+' or msg =='-'):#如果第二个数据为0并且符号是除号就提示除数不为0 - print("除数不可以为0") - self.operator = '' - self.one_buf = '' - self.two_buf = '' - calculator_label.set_text("除数不可以为0") - return - else: - print("除数不为0") - self.show_result() - - self.result_buf = '' - print("input_char",msg) - if self.one_buf != '':#只有第一个数据不为空的时候才可以输入特殊字符 - if msg == "+":#加 - if self.one_buf != '': - if self.operator != '':#90 - print("operator") - if self.two_buf != '':#90+90 计算结果 -0.9 - - if self.one_buf.find('.') != -1: - if self.one_buf.find('e') == -1:#1.2e - if int(self.one_buf.split(".")[1]) == 0: - self.one_buf = self.one_buf.split('.')[0] - - if self.two_buf.find('.') != -1: - if self.two_buf.find('e') == -1:#1.2e - if int(self.two_buf.split('.')[1]) == 0: - self.two_buf = self.two_buf.split('.')[0] - - str_sum = '' - # if self.one_buf.find('e') != -1:#1.2e - # tmp1 = (self.one_buf.split('e')[0])#2.1717041952680391897126070275863e-15 - # tmp2 = (self.one_buf.split('e')[1]) - # if len(tmp2) > 0: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+tmp2)) - # else: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+"0")) - # pass - # pass - # else: - str_sum = (self.one_buf.split()[0])+self.operator+(self.two_buf.split()[0]) - self.result_buf = str(eval(str_sum)) - # pass - - print("str_sum",str_sum,self.result_buf) - if self.result_buf.find('e') == -1: - if self.result_buf.find('.') != -1:#有小数点 - print("input_dot",self.result_buf) - if int(self.result_buf.split(".")[1]) == 0:#小数点后面全是0 就取整数 - self.result_buf = (self.result_buf.split(".")[0]) - - if len(self.result_buf) > 14:#99978654.087766666 - tmp = str(self.result_buf[:14]) - self.result_buf = tmp - - self.one_buf = str(self.result_buf) - self.two_buf = '' - self.operator = '' - self.show_result()#显示计算结果以及输入结果 - else: - if self.operator != '+':#有+就不需要再显示+ - self.operator = msg#90 没有特殊字符则加上不计算结果 - if self.one_buf.split()[0] == 0:#如果数字是0.就显示0负数不在内 - self.one_buf = "0" - self.show_result()#显示计算结果以及输入结果 - else: - print("operator !!!!!") - self.operator = msg - self.show_result()#显示计算结果以及输入结果 - pass - elif msg == '-':#减 - if self.one_buf != '': - if self.operator != '':#90 - print("operator!!!!!!!!!!!!") - if self.two_buf != '':#90+90 计算结果 -0.9 - if self.one_buf.find('.') != -1: - if self.one_buf.find('e') == -1:#1.2e - if int(self.one_buf.split(".")[1]) == 0: - self.one_buf = self.one_buf.split('.')[0] - - if self.two_buf.find('.') != -1: - if self.two_buf.find('e') == -1:#1.2e - if int(self.two_buf.split('.')[1]) == 0: - self.two_buf = self.two_buf.split('.')[0] - str_sum = '' - # if self.one_buf.find('e') != -1:#1.2e - # tmp1 = (self.one_buf.split('e')[0])#2.1717041952680391897126070275863e-15 - # tmp2 = (self.one_buf.split('e')[1]) - # if len(tmp2) > 0: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+tmp2)) - # else: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+"0")) - # pass - # pass - # else: - str_sum = (self.one_buf.split()[0])+self.operator+(self.two_buf.split()[0]) - self.result_buf = str(eval(str_sum)) - - print("str_sum",str_sum,self.result_buf) - if self.result_buf.find('e') == -1: - if self.result_buf.find('.') != -1:#有小数点 - print("input_dot",self.result_buf) - if int(self.result_buf.split(".")[1]) == 0:#小数点后面全是0 就取整数 - self.result_buf = (self.result_buf.split(".")[0]) - - if len(self.result_buf) > 14:#99978654.087766666 - tmp = str(self.result_buf[:14]) - self.result_buf = tmp - - self.one_buf = str(self.result_buf) - self.two_buf = '' - self.operator = '' - self.show_result()#显示计算结果以及输入结果 - else: - if self.operator != '-':#有+就不需要再显示+ - self.operator = msg#90 没有特殊字符则加上不计算结果 - if self.one_buf.split()[0] == 0:#如果数字是0.就显示0负数不在内 - self.one_buf = "0" - self.show_result()#显示计算结果以及输入结果 - else: - print("operator ---------") - self.operator = msg - self.show_result()#显示计算结果以及输入结果 - pass - elif msg == '*':#乘 - if self.one_buf != '': - if self.operator != '':#90 - print("operator====***********") - if self.two_buf != '':#90+90 计算结果 -0.9 - if self.one_buf.find('.') != -1: - if self.one_buf.find('e') == -1:#1.2e - if int(self.one_buf.split(".")[1]) == 0: - self.one_buf = self.one_buf.split('.')[0] - - if self.two_buf.find('.') != -1: - if self.two_buf.find('e') == -1:#1.2e - if int(self.two_buf.split('.')[1]) == 0: - self.two_buf = self.two_buf.split('.')[0] - - str_sum = '' - # if self.one_buf.find('e') != -1:#1.2e - # tmp1 = (self.one_buf.split('e')[0])#2.1717041952680391897126070275863e-15 - # tmp2 = (self.one_buf.split('e')[1]) - # if len(tmp2) > 0: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+tmp2)) - # else: - # self.result_buf = str(eval(tmp1 + "*"+"10**"+"0")) - # pass - # pass - # else: - str_sum = (self.one_buf.split()[0])+self.operator+(self.two_buf.split()[0]) - self.result_buf = str(eval(str_sum)) - # pass - - print("str_sum",str_sum,self.result_buf) - if self.result_buf.find('e') == -1:#有e - if self.result_buf.find('.') != -1:#有小数点 - print("input_dot",self.result_buf) - if int(self.result_buf.split(".")[1]) == 0:#小数点后面全是0 就取整数 - self.result_buf = (self.result_buf.split(".")[0]) - - if len(self.result_buf) > 14:#99978654.087766666 - tmp = str(self.result_buf[:14]) - self.result_buf = tmp - - self.one_buf = str(self.result_buf) - self.two_buf = '' - self.operator = '' - self.show_result()#显示计算结果以及输入结果 - else: - if self.operator != '*':#有+就不需要再显示+ - self.operator = msg#90 没有特殊字符则加上不计算结果 - if self.one_buf.split()[0] == 0:#如果数字是0.就显示0负数不在内 - self.one_buf = "0" - self.show_result()#显示计算结果以及输入结果 - else: - print("operator **********") - self.operator = msg - self.show_result()#显示计算结果以及输入结果 - pass - - elif msg == '/':#除 - if self.one_buf != '': - if self.operator != '':#90 - print("operator ==== //////////",self.two_buf) - if self.two_buf != '':#90+90 计算结果 -0.9 - if float(self.two_buf) != 0: - if self.one_buf.find('.') != -1: - if self.one_buf.find('e') == -1:#1.2e - if int(self.one_buf.split(".")[1]) == 0: - self.one_buf = self.one_buf.split('.')[0] - - if self.two_buf.find('.') != -1: - if self.two_buf.find('e') == -1:#1.2e - if int(self.two_buf.split('.')[1]) == 0: - self.two_buf = self.two_buf.split('.')[0] - - str_sum = '' - # if self.one_buf.find('e') != -1:#1.2e - - # tmp = (self.one_buf.split('e')[0]) - - # str_sum = tmp + self.operator + self.two_buf - # self.result_buf = str(eval(str_sum))+'e' - # pass - # else: - str_sum = (self.one_buf.split()[0])+self.operator+(self.two_buf.split()[0]) - self.result_buf = str(eval(str_sum)) - # pass - - print("str_sum",str_sum,self.result_buf) - if self.result_buf.find('e') == -1:#有小数点 - if self.result_buf.find('.') != -1:#有小数点 - print("input_dot",self.result_buf) - if int(self.result_buf.split(".")[1]) == 0:#小数点后面全是0 就取整数 - self.result_buf = (self.result_buf.split(".")[0]) - - # if len(self.result_buf) > 14:#99978654.087766666 - # tmp = str(self.result_buf[:14]) - # self.result_buf = tmp - - self.one_buf = str(self.result_buf) - self.two_buf = '' - self.operator = '' - self.show_result()#显示计算结果以及输入结果 - else: - print("除数不为0") - else: - if self.operator != '/':#有+就不需要再显示+ - self.operator = msg#90 没有特殊字符则加上不计算结果 - if self.one_buf.split()[0] == 0:#如果数字是0.就显示0负数不在内 - self.one_buf = "0" - self.show_result()#显示计算结果以及输入结果 - else: - print("operator ////////////////////") - self.operator = msg - self.show_result()#显示计算结果以及输入结果 - pass - - pass - - elif msg == '=':#等于 - if self.one_buf != '': - if self.operator != '': - print("operator ===========") - if self.two_buf != '':#90+90 计算结果 -0.9 - if float(self.two_buf) != 0: - if self.one_buf.find('.') != -1: - if self.one_buf.find('e') == -1:#1.2e - if int(self.one_buf.split(".")[1]) == 0: - self.one_buf = self.one_buf.split('.')[0] - - if self.two_buf.find('.') != -1: - if self.two_buf.find('e') == -1:#1.2e - if int(self.two_buf.split('.')[1]) == 0: - self.two_buf = self.two_buf.split('.')[0] - - str_sum = '' - # if self.one_buf.find('e') != -1:#1.2e - # tmp = (self.one_buf.split('e')[0]) - # str_sum = tmp + self.operator + self.two_buf - # self.result_buf = str(eval(str_sum))+'e' - # pass - # else: - str_sum = (self.one_buf.split()[0])+self.operator+(self.two_buf.split()[0]) - self.result_buf = str(eval(str_sum)) - # pass - - print("str_sum",str_sum,self.result_buf) - if self.result_buf.find('e') == -1:#有小数点 - if self.result_buf.find('.') != -1:#有小数点 - print("input_dot",self.result_buf) - if int(self.result_buf.split(".")[1]) == 0:#小数点后面全是0 就取整数 - self.result_buf = (self.result_buf.split(".")[0]) - - if len(self.result_buf) > 14:#99978654.087766666 - tmp = str(self.result_buf[:14]) - self.result_buf = tmp - - self.one_buf = str(self.result_buf) - self.two_buf = '' - self.operator = '' - self.show_result()#显示计算结果以及输入结果 - else: - if self.operator != '=':#有=就不需要再显示+ 90 - self.operator = '' #90 没有特殊字符则加上不计算结果 - self.two_buf = '' - self.show_result()#显示计算结果以及输入结果 - - pass - else: - self.operator = '' - self.two_buf = '' - self.show_result()#显示计算结果以及输入结果 只显示第一个数据的内容 - - pass - else: - #无效的数据 - pass - - - - def show_result(self): - print("self.one_buf ",self.one_buf,self.two_buf,self.operator) - global calculator_label - tmp = str(self.one_buf)+str(self.operator)+str(self.two_buf) - label_size = len(tmp)*16 - calculator_label.set_pos(0, 0) - calculator_label.set_size(128, 16) - calculator_label.set_text(tmp) - - def calculator_fun(self,msg): - result = 0 - if len(self.phone_num) >= calculator_CALL_MAX_DATA:#限制拨号数量20个数字 - #self.phone_list.pop(0) - return - if len(self.phone_num) != 0: - if len(self.calcul_num) > 0: - self.calcul_num = '' - if msg == "+" or msg == '-' or msg == 'X' or msg == '/':#如果是计算完结果再按特殊字符就让他继续加 - print("不包含特殊字符1") - - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - else:# - print("不包含特殊字符2",msg) - if msg == '=': - self.show_num() - else: - - self.phone_num = '' - self.phone_list = [] - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - - else: - - - - if self.phone_num.find('/') != -1 or self.phone_num.find('+') != -1 or self.phone_num.find('x') != -1 or self.phone_num.find('-') != -1: - - - tmp_2 = '' - tmp_3 = '' - state1 = 0 - state2 = 0 - state3 = 0 - tmp_1 = '' - tmp = '' - data1 = 0 - data2 = 0 - - if self.phone_num.find('+') != -1:#加运算 - if (self.phone_num.split('+')[0]).find('.') == -1:#还没有输入小数点 0.00 - tmp = self.phone_num.split('+')[0] - tmp = float(tmp.split()[0]) - - - - pass - - data1 = float(self.phone_num.split('+')[0]) - - if len(self.phone_num.split('+')[1]) > 0 and (msg == '+' or msg =='='):#计算结果 - # tmp = self.phone_num.split('+')[0] - # data1 = float(tmp.split()[0]) - # tmp2 = self.phone_num.split('+')[1] - # data2 = float(tmp2.split()[0]) - # if self.phone_num.split('+')[0].find('.') == -1: - # if int(data2) == 0: - # data1 = int(data1) - - # if self.phone_num.split('+')[1].find('.') == -1: - # if int(data2) == 0: - # data2 = int(data2) - if self.phone_num.find('e') != -1: - if (self.phone_num.split('+')[0]).split('e') != -1 or (self.phone_num.split('+')[1]).split('e') != -1: - if (self.phone_num.split('+')[0]).split('e') != -1 and (self.phone_num.split('+')[1]).split('e') != -1: - self.phone_num = "2.71828182+2.71828182" - elif (self.phone_num.split('+')[0]).split('e') != -1: - self.phone_num = self.phone_num.split('+')[0] +"2.71828182" - elif (self.phone_num.split('+')[1]).split('e') != -1: - self.phone_num = "2.71828182"+ self.phone_num.split('+')[1] - - sum = eval(self.phone_num) - - result = sum - print("data1",data1,data2,result,sum) - self.calcul_num = str(result) - self.calaulator_results() - - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - print("加数====",result) - else: - if msg == '-' or msg == '/' or msg == 'X': - self.phone_list.pop() - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - print("减数") - else: - if msg != '=' and msg != '+': - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - else: - result = data1 - result_tmp = str(result) - if result_tmp.find('.') != -1: - tmp_zero = int(result_tmp.split('.')[1]) - if tmp_zero == 0: - result = result_tmp.split('.')[0] - print("data1!!!!!!!!!!",data1,data2,result) - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - print("减数") - print("加数") - - if self.phone_num.find('-') != -1:#减运算 - data1 = float(self.phone_num.split('-')[0]) - if len(self.phone_num.split('-')[1]) > 0 and (msg == '-' or msg =='='):#计算结果 - data2 = float(self.phone_num.split('-')[1]) - # if self.phone_num.split('-')[0].find('.') == -1: - # if int(data1) == 0: - # data1 = int(data1) - - # if self.phone_num.split('-')[1].find('.') == -1: - # if int(data2.slpit('.')[1]) == 0: - # data2 = int(data2) - result = data1-data2 - print("data1222222222222",data1,data2,result) - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - else: - if msg == '+' or msg == '/' or msg == 'X': - self.phone_list.pop() - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - print("减数") - else: - if msg != '=' and msg != '-': - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - else: - # if self.phone_num.split('-')[1].find('.') == -1: - # if int(data1.slpit('.')[1]) == 0: - # data1 = int(data1) - result = data1 - result_tmp = str(result) - if result_tmp.find('.') != -1: - tmp_zero = int(result_tmp.split('.')[1]) - if tmp_zero == 0: - result = result_tmp.split('.')[0] - print("data333333",data1) - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - - - if self.phone_num.find('X') != -1:#乘运算 - data1 = float(self.phone_num.split('X')[0]) - if len(self.phone_num.split('X')[1]) > 0 and (msg == 'X' or msg =='='):#计算结果 - - data2 = float(self.phone_num.split('X')[1]) - # if self.phone_num.split('X')[0].find('.') == -1: - # if int(data1.slpit('.')[1]) == 0: - # data1 = int(data1) - - # if self.phone_num.split('X')[1].find('.') == -1: - # if int(self.phone_num.split('X')[1].find('.').slpit('.')[1]) == 0: - # data2 = int(data2) - - result = data1*data2 - print("data44444",data1,data2) - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - print("乘数====",result) - else: - if msg == '+' or msg == '/' or msg == '-': - self.phone_list.pop() - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - print("乘数") - else: - if msg != '=' and msg != 'X': - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - else: - # if self.phone_num.split('X')[0].find('.') == -1: - # if (self.phone_num.split('X')[1].find('.') == -1:) - result = data1 - result_tmp = str(result) - if result_tmp.find('.') != -1: - tmp_zero = int(result_tmp.split('.')[1]) - if tmp_zero == 0: - result = result_tmp.split('.')[0] - print("data5555555",data1,data2) - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - - - if self.phone_num.find('/') != -1:#除运算 - - tmp = self.phone_num.split('/')[0] - tmp_1 = self.phone_num.split('/')[1] - if len(tmp_1) > 0 and (msg == '/' or msg == '='): - if tmp_1.find('.') != -1: - state1 = int(tmp_1.split('.')[0])#0.009 10:00 - state2 = int(tmp_1.split('.')[1])#0.009 - - else: - state1 = int(tmp_1) #10 - - print("state3",state1,state2,state3,tmp_1) - if (state1 == 0 and state2 == 0): - print("除数不可以为0") - else: - data1 = float(self.phone_num.split('/')[0]) - data2 = 0 - # if data1.find('.') == -1: - # if int(data1.slpit('.')[1]) == 0: - # data1 = int(data1) - - # if data2.find('.') == -1: - # if int(data2.slpit('.')[1]) == 0: - # data2 = int(data2) - - if len(self.phone_num.split('/')[1]) > 0: - data2 = float(self.phone_num.split('/')[1]) - if data2 != 0: - result = data1/data2 - else: - result = data1 - print("data6666666",data1,data2) - - result_tmp = str(result) - if result_tmp.find('.') != -1: - tmp_zero = int(result_tmp.split('.')[1]) - if tmp_zero == 0: - result = result_tmp.split('.')[0] - else: - pass - self.calcul_num = str(result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - else: - if msg == '+' or msg == 'X' or msg == '-': - self.phone_list.pop() - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - print("减数") - else: - if msg != '=' and msg != '/': - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - else: - result = float(tmp) - self.calcul_num = str(result) - print("data7777777777",result) - self.calaulator_results() - self.phone_num = self.calcul_num - self.phone_list = list(self.phone_num) - print("除数没有数字") - else: - - - if msg == '=': - self.show_num() - pass - else: - if msg == "+" and msg == '-' and msg == 'X' and msg == '/':#如果是计算完结果再按特殊字符就让他继续加 - print("不包含特殊字符") - self.calcul_num = '' - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - elif msg == ".": - if self.phone_num.find('.') == -1:#还没有输入小数点 - self.phone_num = '0.' - self.phone_list = list(self.phone_num) - self.show_num() - pass - else:# - print("不包含特殊字符") - if len(self.calcul_num) > 0:#表示已计算了一次结果 全部置0 - self.phone_num = '' - self.phone_list = [] - self.calcul_num = '' - - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - - else: - if msg != "+" and msg != '-' and msg != 'X' and msg != '/': - print("数组为0时") - self.phone_list.append(msg) - self.phone_num = ''.join(self.phone_list) - self.show_num() - pass - - def delete(self,e): - self.input_char("/") - # if len(self.phone_list) != 0: - # self.phone_list.pop() - # self.phone_num = ''.join(self.phone_list) - # self.show_num() - - def contact(self,e): - EventMesh.publish("load_screen", {"screen": "contacts"}) - - def call(self,e): - self.input_char("-") - - def show_num(self): - print("self.phone_num ",self.phone_num,self.phone_list) - pass - # global calculator_label - # calculator_label.set_pos(0, 5) - # calculator_label.set_size(128, 20) - # calculator_label.set_text(self.phone_num) - - def calaulator_results(self):#计算结果显示 - pass - - - def lcd_on(self): - if self.timer_cb != 0: - self.timer_cb = 0 - self.timer.start(1000,1,self.refresh_line) - - def lcd_off(self): - self.timer_cb = 1 - self.timer.stop() - - - def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) - - def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) - - def btn8_press(self): - EventMesh.publish("watch_top_show") - EventMesh.publish("load_screen", {"screen": "main_menu"}) - rrestor_confirm_n_screen = None rrestor_confirm_n_screen_label = None