添加通用的异常判断算法
This commit is contained in:
@@ -299,7 +299,7 @@
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
<IsCurrentTarget>0</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
@@ -523,7 +523,7 @@
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>0</IsCurrentTarget>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
@@ -551,7 +551,7 @@
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>6</nTsel>
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
@@ -562,7 +562,7 @@
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
@@ -583,7 +583,7 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||
<Name>d</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
@@ -612,8 +612,8 @@
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
<WinNumber>1</WinNumber>
|
||||
<SubType>0</SubType>
|
||||
<ItemText>uid_psw</ItemText>
|
||||
<SubType>1</SubType>
|
||||
<ItemText>0x200033B0</ItemText>
|
||||
<AccSizeX>0</AccSizeX>
|
||||
</Mm>
|
||||
</MemoryWindow1>
|
||||
@@ -1459,6 +1459,18 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\source\elec_det\elec_judge.c</PathWithFileName>
|
||||
<FilenameWithoutPath>elec_judge.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
@@ -1469,7 +1481,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1481,7 +1493,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1501,7 +1513,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<FileNumber>64</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1513,7 +1525,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>64</FileNumber>
|
||||
<FileNumber>65</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1525,7 +1537,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>65</FileNumber>
|
||||
<FileNumber>66</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1537,7 +1549,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>66</FileNumber>
|
||||
<FileNumber>67</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1549,7 +1561,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>67</FileNumber>
|
||||
<FileNumber>68</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1561,7 +1573,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>68</FileNumber>
|
||||
<FileNumber>69</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1573,7 +1585,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>69</FileNumber>
|
||||
<FileNumber>70</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1585,7 +1597,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>70</FileNumber>
|
||||
<FileNumber>71</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1597,7 +1609,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>71</FileNumber>
|
||||
<FileNumber>72</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1609,7 +1621,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>72</FileNumber>
|
||||
<FileNumber>73</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1621,7 +1633,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>73</FileNumber>
|
||||
<FileNumber>74</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1633,7 +1645,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>74</FileNumber>
|
||||
<FileNumber>75</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1645,7 +1657,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>75</FileNumber>
|
||||
<FileNumber>76</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1657,7 +1669,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>76</FileNumber>
|
||||
<FileNumber>77</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1669,7 +1681,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>77</FileNumber>
|
||||
<FileNumber>78</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1681,7 +1693,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>78</FileNumber>
|
||||
<FileNumber>79</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1693,7 +1705,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>79</FileNumber>
|
||||
<FileNumber>80</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1705,7 +1717,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>80</FileNumber>
|
||||
<FileNumber>81</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1717,7 +1729,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>81</FileNumber>
|
||||
<FileNumber>82</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1737,7 +1749,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>82</FileNumber>
|
||||
<FileNumber>83</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1749,7 +1761,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>83</FileNumber>
|
||||
<FileNumber>84</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1761,7 +1773,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>84</FileNumber>
|
||||
<FileNumber>85</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1773,7 +1785,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>85</FileNumber>
|
||||
<FileNumber>86</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1785,7 +1797,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>86</FileNumber>
|
||||
<FileNumber>87</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1797,7 +1809,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>87</FileNumber>
|
||||
<FileNumber>88</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1809,7 +1821,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>88</FileNumber>
|
||||
<FileNumber>89</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1821,7 +1833,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>89</FileNumber>
|
||||
<FileNumber>90</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1833,7 +1845,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>90</FileNumber>
|
||||
<FileNumber>91</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1845,7 +1857,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>91</FileNumber>
|
||||
<FileNumber>92</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1857,7 +1869,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>92</FileNumber>
|
||||
<FileNumber>93</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1877,7 +1889,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>93</FileNumber>
|
||||
<FileNumber>94</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1889,7 +1901,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>94</FileNumber>
|
||||
<FileNumber>95</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1901,7 +1913,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>95</FileNumber>
|
||||
<FileNumber>96</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1913,7 +1925,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>96</FileNumber>
|
||||
<FileNumber>97</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1925,7 +1937,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>97</FileNumber>
|
||||
<FileNumber>98</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1945,7 +1957,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>98</FileNumber>
|
||||
<FileNumber>99</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1965,7 +1977,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>99</FileNumber>
|
||||
<FileNumber>100</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1977,7 +1989,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>100</FileNumber>
|
||||
<FileNumber>101</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -1989,7 +2001,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>101</FileNumber>
|
||||
<FileNumber>102</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2001,7 +2013,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>102</FileNumber>
|
||||
<FileNumber>103</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2013,7 +2025,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>103</FileNumber>
|
||||
<FileNumber>104</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2025,7 +2037,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>104</FileNumber>
|
||||
<FileNumber>105</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2045,7 +2057,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>13</GroupNumber>
|
||||
<FileNumber>105</FileNumber>
|
||||
<FileNumber>106</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2065,7 +2077,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>14</GroupNumber>
|
||||
<FileNumber>106</FileNumber>
|
||||
<FileNumber>107</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -2077,7 +2089,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>14</GroupNumber>
|
||||
<FileNumber>107</FileNumber>
|
||||
<FileNumber>108</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@@ -929,6 +929,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_io.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>elec_judge.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_judge.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@@ -3684,6 +3689,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_io.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>elec_judge.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_judge.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
@@ -4919,6 +4929,11 @@
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_io.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>elec_judge.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\source\elec_det\elec_judge.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
|
@@ -141,30 +141,36 @@ def scheme_to_byte(j:json):
|
||||
# int转数组
|
||||
def arr_from_int(num:int):
|
||||
return bytearray([num&0xff,(num>>8)&0xff,(num>>16)&0xff,(num>>24)&0xff])
|
||||
# uchar转数组
|
||||
def arr_from_uchar(num:int):
|
||||
return bytearray([num&0xff])
|
||||
# u16转数组
|
||||
def arr_from_u16(num:int):
|
||||
return bytearray([num&0xff,(num>>8)&0xff])
|
||||
|
||||
|
||||
# 提取方案中的范围数据, 先max后min
|
||||
def scheme_get_task_range(j:json):
|
||||
t=bytearray()
|
||||
t+=arr_from_int(j["TaskID"])
|
||||
t+=arr_from_int(j["TaskIndex"])
|
||||
t+=arr_from_int(j["ReturnCount"])
|
||||
t+=arr_from_int(j["ExecuteErrCode"])
|
||||
t+=arr_from_uchar(j["TaskID"])
|
||||
t+=arr_from_uchar(j["TaskIndex"])
|
||||
t+=arr_from_uchar(j["ReturnCount"])
|
||||
t+=arr_from_uchar(j["ExecuteErrCode"])
|
||||
index=0
|
||||
for i in j["TestStandard"]:
|
||||
t+=arr_from_int(i["Max"])
|
||||
t+=arr_from_int(i["Min"])
|
||||
t+=arr_from_u16(i["Max"])
|
||||
t+=arr_from_u16(i["Min"])
|
||||
if (index<len(j["ResultErrCode"])):
|
||||
t+=arr_from_int(j["ResultErrCode"][index])
|
||||
t+=arr_from_uchar(j["ResultErrCode"][index])
|
||||
else:
|
||||
t+=arr_from_int(0)
|
||||
t+=arr_from_uchar(0)
|
||||
index+=1
|
||||
# 不足16的部分填充为16
|
||||
n=16-len(j["TestStandard"])
|
||||
for i in range(n):
|
||||
t+=arr_from_int(65535)
|
||||
t+=arr_from_int(0)
|
||||
t+=arr_from_int(0)
|
||||
t+=arr_from_u16(65535)
|
||||
t+=arr_from_u16(0)
|
||||
t+=arr_from_uchar(0)
|
||||
return t
|
||||
|
||||
# 根据方案生成主板用的字节数据
|
||||
|
@@ -230,3 +230,5 @@
|
||||
版本号2.03,JQ_UID_PWD_Bind 不注码时返回成功
|
||||
2023.10.27
|
||||
添加 HARD_VERSION 宏,根据硬件版本不同来确定power参数
|
||||
2023.10.30
|
||||
添加通用的异常判断算法
|
||||
|
@@ -115,8 +115,9 @@ static int get_ack(const uint8_t *data,int index)
|
||||
//-- 接触异常,3
|
||||
//-- 桥丝阻值异常,4
|
||||
//-- 芯片异常,5
|
||||
//-- 过流,7
|
||||
//-- 短路,8
|
||||
//-- 判定任务缺失,6
|
||||
//-- 过流,7
|
||||
//-- 短路,8
|
||||
|
||||
#define TASK_FIND_NEXT(taskid) {\
|
||||
task=find_task_next(index,taskid);\
|
||||
|
@@ -83,6 +83,26 @@ int flash_save_param(sys_param_def *par);
|
||||
const sys_param_def *sys_param(void);
|
||||
|
||||
|
||||
#if 1
|
||||
__packed
|
||||
typedef struct{
|
||||
uint16_t max;
|
||||
uint16_t min;
|
||||
uint8_t err;
|
||||
}scheme_range_def;
|
||||
|
||||
__packed
|
||||
typedef struct
|
||||
{
|
||||
uint8_t taskid;
|
||||
uint8_t taskindex;
|
||||
uint8_t item_num;
|
||||
uint8_t err;
|
||||
scheme_range_def range[16];
|
||||
}scheme_task_def;
|
||||
|
||||
#else
|
||||
|
||||
__packed
|
||||
typedef struct{
|
||||
uint32_t max;
|
||||
@@ -102,6 +122,18 @@ typedef struct
|
||||
scheme_range_def range[16];
|
||||
}scheme_task_def;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
__packed
|
||||
typedef struct{
|
||||
uint8_t err;
|
||||
uint8_t suberr_num;
|
||||
uint8_t suberr[30];
|
||||
}marerr_def;
|
||||
|
||||
|
||||
// 方案参数
|
||||
__packed
|
||||
typedef struct{
|
||||
@@ -109,6 +141,8 @@ typedef struct{
|
||||
uint32_t plan_id;
|
||||
uint32_t timeout_m;
|
||||
uint32_t task_num;
|
||||
uint32_t marerr_num;
|
||||
marerr_def marerr[21];
|
||||
scheme_task_def task[0];
|
||||
}scheme_def;
|
||||
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include "dev_flash.h"
|
||||
#include "compiler_info.h"
|
||||
|
||||
#include "elec_judge.h"
|
||||
#include "elec_det.h"
|
||||
#include "base/delay.h"
|
||||
#include "base/utility.h"
|
||||
@@ -439,6 +440,9 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
||||
}
|
||||
}
|
||||
|
||||
elec_judge_def *e=malloc(sizeof(elec_judge_def));
|
||||
elec_judge(e,checker_runcfg.rtv_index,checker_runcfg.Task_Result,(uint8_t *)checker_runcfg.Test_Rtv);
|
||||
free(e);
|
||||
arr_append(r,0);
|
||||
arr_appends(r,checker_runcfg.Task_Result,8);
|
||||
arr_appends(r,checker_runcfg.Task_Excute,8);
|
||||
|
414
source/elec_det/elec_judge.c
Normal file
414
source/elec_det/elec_judge.c
Normal file
@@ -0,0 +1,414 @@
|
||||
|
||||
|
||||
#include "dev_flash.h"
|
||||
#include "string.h"
|
||||
#include "debug.h"
|
||||
#include "mystring.h"
|
||||
#include "elec_judge.h"
|
||||
|
||||
|
||||
|
||||
// 通用异常判定逻辑
|
||||
|
||||
|
||||
//-- 检测器异常,1
|
||||
//-- 主电容异常,2
|
||||
//-- 接触异常,3
|
||||
//-- 桥丝阻值异常,4
|
||||
//-- 芯片异常,5
|
||||
//-- 判定任务缺失,6
|
||||
//-- 过流,7
|
||||
//-- 短路,8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 任务序号校验
|
||||
#define INDEX_CHECK(index)\
|
||||
if(index<0||index>=e->scheme->task_num) {\
|
||||
elec_add_errcode(e,6);\
|
||||
return ;}
|
||||
// 任务判定标志校验
|
||||
#define TASK_FLAG_CHECK(index){\
|
||||
if(e->judge_flag[index/8]&(1<<(index%8))){\
|
||||
return;}\
|
||||
else{\
|
||||
e->judge_flag[index/8]|=(1<<(index%8));}}\
|
||||
// 任务执行结果校验
|
||||
#define EXE_FLAG_CHECK(index)\
|
||||
(e->exe_flag[index/8]&(1<<(index%8)))?1:0
|
||||
// 取任务结果的第index位
|
||||
#define GET_RET_DATA(i)\
|
||||
(data[i*2]|(data[i*2+1]<<8))
|
||||
|
||||
|
||||
|
||||
// 添加错误代码
|
||||
static void elec_add_errcode(elec_judge_def *e,int err)
|
||||
{
|
||||
int index=-1;
|
||||
for(int i=0;i<ERR_LIST_LEN;i++){
|
||||
if(e->err_list[i]==0){
|
||||
if(index<0) index=i;
|
||||
}
|
||||
if(e->err_list[i]==err){
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(index>=0){
|
||||
e->err_list[index]=err;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 计算方案有多少个返回值
|
||||
static int elec_get_ret_num(void)
|
||||
{
|
||||
const scheme_def *s=check_scheme();
|
||||
const scheme_task_def *t;
|
||||
int index=0;
|
||||
for(int i=0;i<s->task_num;i++)
|
||||
{
|
||||
t=&s->task[i];
|
||||
index+=t->item_num;
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 通用任务判定函数
|
||||
static void elec_task_judge(elec_judge_def *e,int index,uint8_t *data)
|
||||
{
|
||||
INDEX_CHECK(index);
|
||||
TASK_FLAG_CHECK(index);
|
||||
const scheme_task_def *task=&e->scheme->task[index];
|
||||
uint16_t temp;
|
||||
if(EXE_FLAG_CHECK(index)){
|
||||
elec_add_errcode(e,task->err);
|
||||
}
|
||||
for(int i=0;i<task->item_num;i++){
|
||||
temp=data[i*2]|(data[i*2+1]<<8);
|
||||
if(temp<task->range[i].min||temp>task->range[i].max){
|
||||
elec_add_errcode(e,task->range[i].err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 电源准备
|
||||
static void elec_power_on(elec_judge_def *e,int index,uint8_t *data)
|
||||
{
|
||||
INDEX_CHECK(index);
|
||||
TASK_FLAG_CHECK(index);
|
||||
const scheme_task_def *task=&e->scheme->task[index];
|
||||
uint16_t temp;
|
||||
if(EXE_FLAG_CHECK(index)){
|
||||
elec_add_errcode(e,1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 上电充能
|
||||
static void elec_charge(elec_judge_def *e,int index,uint8_t *data)
|
||||
{
|
||||
INDEX_CHECK(index);
|
||||
TASK_FLAG_CHECK(index);
|
||||
const scheme_task_def *task=&e->scheme->task[index];
|
||||
uint16_t temp;
|
||||
temp=GET_RET_DATA(0);
|
||||
if(temp<task->range[0].min||temp>task->range[0].max){
|
||||
elec_add_errcode(e,1);
|
||||
}
|
||||
temp=GET_RET_DATA(1);
|
||||
if(temp<task->range[1].min||temp>task->range[1].max){
|
||||
elec_add_errcode(e,task->range[1].err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 检测电流
|
||||
static void elec_current(elec_judge_def *e,int index,uint8_t *data)
|
||||
{
|
||||
INDEX_CHECK(index);
|
||||
TASK_FLAG_CHECK(index);
|
||||
const scheme_task_def *task=&e->scheme->task[index];
|
||||
uint16_t temp,temp2;
|
||||
uint16_t short_c=e->short_circuited;
|
||||
uint16_t open_c=e->open_circuited;
|
||||
temp=GET_RET_DATA(0);
|
||||
temp2=GET_RET_DATA(1);
|
||||
if((temp<open_c)&&(temp2<open_c))
|
||||
{
|
||||
// 接触异常
|
||||
elec_add_errcode(e,3);
|
||||
}
|
||||
else if(((temp>task->range[0].max)&&(temp<short_c))||
|
||||
((temp2>task->range[1].max)&&(temp2<short_c)))
|
||||
{
|
||||
// 过流
|
||||
elec_add_errcode(e,7);
|
||||
}else if((temp>short_c)&&(temp2>short_c))
|
||||
{
|
||||
// 短路
|
||||
elec_add_errcode(e,8);
|
||||
}else{
|
||||
if((temp<task->range[0].min||temp>task->range[0].max)||
|
||||
(temp2<task->range[1].min||temp2>task->range[1].max))
|
||||
{
|
||||
// 芯片异常
|
||||
elec_add_errcode(e,5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const static elec_judge_fun g_jq_judge_table[]={
|
||||
elec_power_on, //0 电源准备
|
||||
elec_charge, //1 上电充能
|
||||
elec_task_judge, //2 设置总线电压
|
||||
elec_current, //3 获取总线电流
|
||||
elec_task_judge, //4 扫描UID
|
||||
elec_task_judge, //5 密码验证
|
||||
elec_task_judge, //6 读取芯片代码
|
||||
elec_task_judge, //7 OTP检测
|
||||
elec_task_judge, //8 工厂测试检测
|
||||
elec_task_judge, //9 读取状态
|
||||
elec_task_judge, //10 写工厂信息
|
||||
elec_task_judge, //11 充能统计
|
||||
elec_task_judge, //12 充电电压检测
|
||||
elec_task_judge, //13 延时等待
|
||||
elec_task_judge, //14 设置延时
|
||||
elec_task_judge, //15 读取延时
|
||||
elec_task_judge, //16 时钟校准
|
||||
elec_task_judge, //17 放电
|
||||
elec_task_judge, //18 复位
|
||||
elec_task_judge, //19 起爆使能
|
||||
elec_task_judge, //20 起爆充能
|
||||
elec_task_judge, //21 使能通讯末电流采集
|
||||
elec_task_judge, //22 获取通讯末电流
|
||||
elec_task_judge, //23 写OTP
|
||||
elec_task_judge, //24 读OTP
|
||||
elec_task_judge, //25 清除起爆计数
|
||||
elec_task_judge, //26 关总线
|
||||
elec_task_judge, //27 将缓存区数据写入OTP
|
||||
elec_task_judge, //28 三码写入错误
|
||||
elec_task_judge, //29 三码验证错误
|
||||
elec_task_judge, //30 测量电容压差
|
||||
elec_task_judge, //31 测量桥丝阻值
|
||||
elec_task_judge, //32 使能OTP写
|
||||
elec_task_judge, //33 写模块版本
|
||||
elec_task_judge, //34 读取版本号
|
||||
elec_task_judge, //35 写缓存数据
|
||||
elec_task_judge, //36 验证缓存数据
|
||||
0,
|
||||
};
|
||||
|
||||
|
||||
const static elec_judge_fun g_xt_judge_table[]={
|
||||
elec_power_on, //0 电源准备
|
||||
elec_charge, //1 上电充能
|
||||
elec_task_judge, //2 设置总线电压
|
||||
elec_current, //3 获取总线电流
|
||||
elec_task_judge, //4 扫描UID
|
||||
elec_task_judge, //5 写配置参数
|
||||
elec_task_judge, //6 验证配置
|
||||
elec_task_judge, //7 模拟注码
|
||||
elec_task_judge, //8 充能统计
|
||||
elec_task_judge, //9 写现场值 网络id 延时
|
||||
elec_task_judge, //10比对现场值
|
||||
elec_task_judge, //11 桥丝通断检测
|
||||
elec_task_judge, //12 电容容量统计
|
||||
elec_task_judge, //13 延时等待
|
||||
elec_task_judge, //14 写管壳号/工厂信息
|
||||
elec_task_judge, //15 写UID
|
||||
elec_task_judge, //16 写密码
|
||||
elec_task_judge, //17 写入/检测备份区标志
|
||||
elec_task_judge, //18 读取备份区数据
|
||||
elec_task_judge, //19 校准
|
||||
elec_task_judge, //20 使能通讯末电流采集
|
||||
elec_task_judge, //21 获取通讯末电流
|
||||
elec_task_judge, //22 放电
|
||||
elec_task_judge, //23 在线检测
|
||||
elec_task_judge, //24 状态检测
|
||||
elec_task_judge, //25 起爆
|
||||
elec_task_judge, //26 复位
|
||||
elec_task_judge, //27 关总线
|
||||
elec_task_judge, //28 芯片锁存
|
||||
elec_task_judge, //29 使能赋码设备
|
||||
elec_task_judge, //30 在线检测
|
||||
elec_task_judge, //31 密码验证
|
||||
elec_task_judge, //32 加载芯片配置
|
||||
elec_task_judge, //33 电容压差测试
|
||||
elec_task_judge, //34 桥丝电阻测试
|
||||
elec_task_judge, //35 检测过程中注码
|
||||
elec_task_judge, //36 验证注码
|
||||
elec_task_judge, //37 模块在线检测
|
||||
elec_task_judge, //38 验证管壳码
|
||||
0,
|
||||
};
|
||||
|
||||
|
||||
|
||||
const static elec_judge_fun g_ew_judge_table[]={
|
||||
elec_power_on, //0 电源准备
|
||||
elec_charge, //1 上电充能
|
||||
elec_task_judge, //2 设置总线电压
|
||||
elec_current, //3 获取总线电流
|
||||
elec_task_judge, //4 扫描UID
|
||||
elec_task_judge, //5 写配置参数
|
||||
elec_task_judge, //6 验证配置
|
||||
elec_task_judge, //7 模拟注码
|
||||
elec_task_judge, //8 充能统计
|
||||
elec_task_judge, //9 写现场值 网络id 延时
|
||||
elec_task_judge, //10比对现场值
|
||||
elec_task_judge, //11 桥丝通断检测
|
||||
elec_task_judge, //12 电容容量统计
|
||||
elec_task_judge, //13 延时等待
|
||||
elec_task_judge, //14 写管壳号/工厂信息
|
||||
elec_task_judge, //15 写UID
|
||||
elec_task_judge, //16 写密码
|
||||
elec_task_judge, //17 写入/检测备份区标志
|
||||
elec_task_judge, //18 读取备份区数据
|
||||
elec_task_judge, //19 校准
|
||||
elec_task_judge, //20 使能通讯末电流采集
|
||||
elec_task_judge, //21 获取通讯末电流
|
||||
elec_task_judge, //22 放电
|
||||
elec_task_judge, //23 在线检测
|
||||
elec_task_judge, //24 状态检测
|
||||
elec_task_judge, //25 起爆
|
||||
elec_task_judge, //26 复位
|
||||
elec_task_judge, //27 关总线
|
||||
elec_task_judge, //28 芯片锁存
|
||||
elec_task_judge, //29 使能赋码设备
|
||||
elec_task_judge, //30 在线检测
|
||||
elec_task_judge, //31 密码验证
|
||||
elec_task_judge, //32 加载芯片配置
|
||||
elec_task_judge, //33 电容压差测试
|
||||
elec_task_judge, //34 桥丝电阻测试
|
||||
elec_task_judge, //35 检测过程中注码
|
||||
elec_task_judge, //36 验证注码
|
||||
elec_task_judge, //37 模块在线检测
|
||||
elec_task_judge, //38 升级
|
||||
0,
|
||||
};
|
||||
|
||||
|
||||
static const elec_judge_fun *g_judge_fun_table[]={g_jq_judge_table,g_xt_judge_table,g_ew_judge_table};
|
||||
|
||||
static int elec_calc_judge_fun_num(const elec_judge_fun *table)
|
||||
{
|
||||
int i=0;
|
||||
while(table[i]){
|
||||
i++;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
|
||||
// 根据方案获取模块芯片类型
|
||||
int elec_extract_chip(int id)
|
||||
{
|
||||
const scheme_def *s=check_scheme();
|
||||
if(id==0) id=s->plan_id;
|
||||
// 日bit0~bit4 月bit5~bit8 年bit9~bit15
|
||||
int sid=(id>>0)&0x7f;
|
||||
int modele=(id>>7)&0x1f;
|
||||
int chip=(id>>12)&0xf;
|
||||
int day=(id>>16)&0x1f;
|
||||
int month=(id>>21)&0xf;
|
||||
int year=((id>>25)&0x7f)+2022;
|
||||
return chip;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 根据子错误找到主错误
|
||||
int elec_err_classify(int err)
|
||||
{
|
||||
const scheme_def *s=check_scheme();
|
||||
const marerr_def *marerr;
|
||||
if(err<=20){
|
||||
return err;
|
||||
}
|
||||
for(int i=0;i<s->marerr_num;i++){
|
||||
marerr=&s->marerr[i];
|
||||
for(int j=0;j<marerr->suberr_num;j++){
|
||||
if(marerr->suberr[j]==err)
|
||||
return marerr->err;
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
// 根据优先级报错
|
||||
int elec_report_err(elec_judge_def *e)
|
||||
{
|
||||
static const uint8_t pro_table[]={1,3,7,8,2,4,5,6,0};
|
||||
uint8_t err=0;
|
||||
for (int i=0;i<sizeof(pro_table);i++){
|
||||
for(int j=0;j<ERR_LIST_LEN;j++){
|
||||
if(e->err_list[j]==pro_table[i])
|
||||
return pro_table[i];
|
||||
if((err==0)&&(e->err_list[j]!=0)){
|
||||
err=e->err_list[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 异常判断
|
||||
// task_num,要判断的任务数
|
||||
void elec_judge(elec_judge_def *e,int task_num,uint8_t *exe_flag,uint8_t *data)
|
||||
{
|
||||
const scheme_task_def *task;
|
||||
memset(e,0,sizeof(elec_judge_def));
|
||||
e->scheme=check_scheme();
|
||||
e->judge_fun_table=g_judge_fun_table[elec_extract_chip(e->scheme->plan_id)];
|
||||
e->judge_fun_num=elec_calc_judge_fun_num(e->judge_fun_table);
|
||||
e->short_circuited=1500;
|
||||
e->open_circuited=80;
|
||||
e->exe_flag=exe_flag;
|
||||
if(task_num>e->scheme->task_num)
|
||||
task_num=e->scheme->task_num;
|
||||
for(int i=0;i<task_num;i++)
|
||||
{
|
||||
task=&e->scheme->task[i];
|
||||
if(task->taskid<e->judge_fun_num){
|
||||
e->judge_fun_table[i](e,i,data);
|
||||
}else{
|
||||
elec_add_errcode(e,6);
|
||||
}
|
||||
data+=task->item_num*2;
|
||||
}
|
||||
DBG_LOG("err_table:%02x %02x %02x %02x %02x %02x %02x %02x",
|
||||
e->err_list[0],e->err_list[1],e->err_list[2],e->err_list[3],e->err_list[4],
|
||||
e->err_list[5],e->err_list[6],e->err_list[7],e->err_list[8],e->err_list[9]
|
||||
);
|
||||
for(int i=0;i<ERR_LIST_LEN;i++){
|
||||
e->err_list[i]=elec_err_classify(e->err_list[i]);
|
||||
}
|
||||
DBG_LOG("err_table2:%02x %02x %02x %02x %02x %02x %02x %02x",
|
||||
e->err_list[0],e->err_list[1],e->err_list[2],e->err_list[3],e->err_list[4],
|
||||
e->err_list[5],e->err_list[6],e->err_list[7],e->err_list[8],e->err_list[9]
|
||||
);
|
||||
DBG_LOG("err report=%d",elec_report_err(e));
|
||||
}
|
||||
|
||||
|
||||
|
41
source/elec_det/elec_judge.h
Normal file
41
source/elec_det/elec_judge.h
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
#ifndef elec_judge_h__
|
||||
#define elec_judge_h__
|
||||
|
||||
#include "dev_flash.h"
|
||||
|
||||
|
||||
// 定义错误列表长度
|
||||
#define ERR_LIST_LEN 10
|
||||
|
||||
|
||||
|
||||
struct _elec_judge_def;
|
||||
typedef void (*elec_judge_fun)(struct _elec_judge_def *e,int index,uint8_t *data);
|
||||
|
||||
typedef struct _elec_judge_def{
|
||||
const scheme_def *scheme;
|
||||
uint8_t judge_fun_num;
|
||||
uint8_t judge_flag[8];
|
||||
uint8_t *exe_flag;
|
||||
uint8_t err_list[ERR_LIST_LEN];
|
||||
uint16_t short_circuited;
|
||||
uint16_t open_circuited;
|
||||
const elec_judge_fun *judge_fun_table;
|
||||
}elec_judge_def;
|
||||
|
||||
|
||||
|
||||
|
||||
void elec_judge(elec_judge_def *e,int task_num,uint8_t *exe_flag,uint8_t *data);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
|
||||
#define BUILD_DATE "2023-10-27 18:16:13"
|
||||
#define BUILD_DATE "2023-10-30 18:23:29"
|
||||
#define SOFT_VERSION "2.03"
|
||||
|
||||
|
||||
|
@@ -97,6 +97,12 @@ def arr_byte_copy(byte:int,num:int):
|
||||
# int转数组
|
||||
def arr_from_int(num:int):
|
||||
return bytearray([num&0xff,(num>>8)&0xff,(num>>16)&0xff,(num>>24)&0xff])
|
||||
# uchar转数组
|
||||
def arr_from_uchar(num:int):
|
||||
return bytearray([num&0xff])
|
||||
# u16转数组
|
||||
def arr_from_u16(num:int):
|
||||
return bytearray([num&0xff,(num>>8)&0xff])
|
||||
# 字符串转数组,不足填充0
|
||||
def arr_from_str(txt:str,num:int):
|
||||
t=bytearray(txt.encode(encoding="utf-8"))
|
||||
|
@@ -10,7 +10,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
#if 1
|
||||
#if 0
|
||||
|
||||
|
||||
#define DBG_DEV_INIT() rtt()->init()
|
||||
|
Reference in New Issue
Block a user