eric7/MicroPython/MicroPythonCommandsInterface.py

branch
eric7-maintenance
changeset 8941
e1f6a9e53979
parent 8928
d856023fbeb0
equal deleted inserted replaced
8897:a906ba97c1fe 8941:e1f6a9e53979
742 "except AttributeError:", 742 "except AttributeError:",
743 " res['version'] = 'unknown'", 743 " res['version'] = 'unknown'",
744 ]), 744 ]),
745 "print(res)", 745 "print(res)",
746 "del res, __sys_", 746 "del res, __sys_",
747 ]
748 out, err = self.execute(commands)
749 if err:
750 raise OSError(self.__shortError(err))
751 return ast.literal_eval(out.decode("utf-8"))
752
753 def getBoardInformation(self):
754 """
755 Public method to get some information data of the connected board.
756
757 @return dictionary containing the determined data
758 @rtype dict
759 @exception OSError raised to indicate an issue with the device
760 """
761 commands = [
762 "res = {}", # __IGNORE_WARNING_M613__
763
764 "import gc as __gc_",
765 "__gc_.enable()",
766 "__gc_.collect()",
767 "mem_alloc = __gc_.mem_alloc()",
768 "mem_free = __gc_.mem_free()",
769 "mem_total = mem_alloc + mem_free",
770 "res['mem_total_kb'] = mem_total / 1024.0",
771 "res['mem_used_kb'] = mem_alloc / 1024.0",
772 "res['mem_used_pc'] = mem_alloc / mem_total * 100.0",
773 "res['mem_free_kb'] = mem_free / 1024.0",
774 "res['mem_free_pc'] = mem_free / mem_total * 100.0",
775 "del __gc_, mem_alloc, mem_free, mem_total",
776
777 "import os as __os_",
778 "uname = __os_.uname()",
779 "res['sysname'] = uname.sysname",
780 "res['nodename'] = uname.nodename",
781 "res['release'] = uname.release",
782 "res['version'] = uname.version",
783 "res['machine'] = uname.machine",
784
785 "import sys as __sys_",
786 "res['py_platform'] = __sys_.platform",
787 "res['py_version'] = __sys_.version",
788 "\n".join([
789 "try:",
790 " res['mpy_name'] = __sys_.implementation.name",
791 "except AttributeError:",
792 " res['mpy_name'] = 'unknown'",
793 ]),
794 "\n".join([
795 "try:",
796 " res['mpy_version'] = '.'.join((str(i) for i in"
797 " __sys_.implementation.version))",
798 "except AttributeError:",
799 " res['mpy_version'] = 'unknown'",
800 ]),
801
802 "stat_ = __os_.statvfs('/flash')",
803 "res['flash_total_kb'] = stat_[2] * stat_[0] / 1024.0",
804 "res['flash_free_kb'] = stat_[3] * stat_[0] / 1024.0",
805 "res['flash_used_kb'] = res['flash_total_kb'] -"
806 " res['flash_free_kb']",
807 "res['flash_free_pc'] = res['flash_free_kb'] /"
808 " res['flash_total_kb'] * 100.0",
809 "res['flash_used_pc'] = res['flash_used_kb'] /"
810 " res['flash_total_kb'] * 100.0",
811
812 "\n".join([
813 "try:",
814 " import machine as __mc_",
815 " res['mc_frequency_mhz'] = __mc_.freq() / 1000000.0",
816 " res['mc_id'] = ':'.join(['{0:X}'.format(x)"
817 " for x in __mc_.unique_id()])",
818 " del __mc_",
819 "except ImportError:",
820 "\n".join([
821 " try:",
822 " import microcontroller as __mc_",
823 " res['mc_frequency_mhz'] = __mc_.cpu.frequency"
824 " / 1000000.0",
825 " res['mc_temp_c'] = __mc_.cpu.temperature",
826 " res['mc_id'] = ':'.join(['{0:X}'.format(x)"
827 " for x in __mc_.cpu.uid])",
828 " del __mc_",
829 " except ImportError:",
830 " res['mc_frequency'] = None",
831 " res['mc_temp'] = None",
832 ]),
833 ]),
834
835 "\n".join([
836 "try:",
837 " import ulab as __ulab_",
838 " res['ulab'] = __ulab_.__version__",
839 " del __ulab_",
840 "except ImportError:",
841 " res['ulab'] = None",
842 ]),
843
844 "print(res)",
845 "del res, stat_, __os_, __sys_",
747 ] 846 ]
748 out, err = self.execute(commands) 847 out, err = self.execute(commands)
749 if err: 848 if err:
750 raise OSError(self.__shortError(err)) 849 raise OSError(self.__shortError(err))
751 return ast.literal_eval(out.decode("utf-8")) 850 return ast.literal_eval(out.decode("utf-8"))

eric ide

mercurial