TQC软件修改过程.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. 江苏中石化支付功能授权码
  2. 授权码保存文件
  3. /mnt/flash/SINOPEC/authorization
  4. 保存内容:
  5. 功能号4字节(0001),授权码(8位:asc),换行符
  6. 。。。
  7. 8位源数据,前6位为CPU_ID;末2位为功能号码
  8. CPU_ID每位值加上0x11后展示给UI
  9. 密钥
  10. TKHenShanTQC2022
  11. 1、计算获取授权码函数
  12. void GetCalAuthCode(unsigned short func_num ,char *str_CalCode)
  13. {
  14. 计算授权码
  15. }
  16. 2、匹配授权码是否正确函数
  17. BOOL CheckAuthorizeCode(char *menu_id,const char *value){}
  18. 系统启动时调用此函数校验授权码是否正确存在,不存在则禁止此功能的使能
  19. 菜单输入授权码时调用,判断授权码正确,则使能此功能
  20. 并保存此授权码
  21. 3、启动时校验授权码是否存在并且正确,若不正确则禁止使能该功能
  22. BOOL CheckAuthCodeOK(char *menu_id)
  23. 4、获取CPUID转换供给UI显示
  24. void CPUIDConvert(char *menu_id)
  25. ==================授权码生成规则:==============================
  26. 一、从油机菜单中获取ID,输入到PC工具中,PC工具根据此ID每个字节的16进制码减去0x11得到输入UUID
  27. 二、UUID(6字节)+功能码(2字节BCD码)组成8字节加密输入源
  28. 三、采用3DES以密钥TKHenShanTQC2022加密输入源得出的字符串,获取授权码
  29. 四、3DES加密计算后得到的字符串取前六个数字,如果数字不够六个,则从第一个英文字母取其ASC16(大写)进制值的高低4位值转成字符后赋值补种不够的数字。
  30. 如"A"十六进制为0x41,则取值后为"4"和"1"
  31. ======修改增加菜单:
  32. 添加一个菜单,在使能前需要输入授权码
  33. 增加029k00 的下一级菜单029k10作为配置开关使能
  34. 弹出输入授权码菜单时,
  35. \Region\China\languages\China_dispenser_text.ini
  36. [029k00]
  37. T1=1 请输入授权码:
  38. [029k10]
  39. T1=1 关闭
  40. T2=2 开启
  41. ===========xml:
  42. \Region\China\menu\dispenser_menu.xml
  43. <Menu_029k00>
  44. <menu ID="029k00" prev_menu="029000" next_menu="029k10" type="text">
  45. <title>[T1]</title>
  46. <text command="command=CheckAuthorizeFunc"/>
  47. </menu>
  48. </Menu_029k00>
  49. <Menu_029k10>
  50. <menu ID="029k10" prev_menu="029k00" next_menu="029k10" type="single_select">
  51. <title>[T1]</title>
  52. <title>[T2]</title>
  53. </menu>
  54. </Menu_029k10>
  55. ==========xsl:
  56. E:\Work\ubuntuMnt\TQC_Resource\Region\China\menu\dispenser_menu_xsl.xml
  57. <Menu_029k00>
  58. <xsl:variable name="Dynamic_Menu">/menu_ref/Operating_Menu.xml</xsl:variable>
  59. <xsl:variable name="Access_File">/menu_ref/Operating_Access.xml</xsl:variable>
  60. <xsl:variable name="cpu_id" select="document($Dynamic_Menu)//SETUP/Backup_Restore/cpu_id"/>
  61. <xsl:variable name="readonly" select="document($Access_File)//CURRENT_ACCESS_LEVEL/Level3"/>
  62. <menu id="{@ID}" prev_menu="{@prev_menu}" next_menu="{@next_menu}" type="{@type}" display="UI">
  63. <xsl:attribute name="readonly"><xsl:value-of select="$readonly='RW'"/></xsl:attribute>
  64. <xsl:variable name="auth_code" select="document($Dynamic_Menu)//CONFIGURATION/AUTHORIZE_FUNC_CODE"/>
  65. <text><xsl:value-of select="$cpu_id"/></text>
  66. <xsl:copy-of select="title[1]"/>
  67. <text>
  68. <xsl:attribute name="command">min=0;max=9999999999;
  69. type=int;len=10;file=Operating_Menu.xml;path=//CONFIGURATION/AUTHORIZE_FUNC_CODE;value=<xsl:value-of select="$auth_code"/>
  70. </xsl:attribute>******</text>
  71. </menu>
  72. </Menu_029k00>
  73. <Menu_029k10>
  74. <xsl:variable name="Config_File">/home/TQC/Appl/UTN11/Operating_Config.xml</xsl:variable>
  75. <xsl:variable name="Access_File">/home/TQC/Appl/UTN11/Operating_Access.xml</xsl:variable>
  76. <xsl:variable name="readonly" select="document($Access_File)//CURRENT_ACCESS_LEVEL/Level3"/>
  77. <menu id="{@ID}" prev_menu="{@prev_menu}" next_menu="{@next_menu}" type="{@type}" display="UI">
  78. <xsl:attribute name="readonly">
  79. <xsl:value-of select="$readonly='RW'"/>
  80. </xsl:attribute>
  81. <xsl:variable name="check" select="document($Config_File)//SINOPEC_SETTING/OPTIONAL_FUNCTIONS"/>
  82. <radio>
  83. <xsl:attribute name="command">checked=<xsl:value-of select="$check/name[1]=$check/function[@id='22']/value"/>;value=<xsl:value-of select="$check/name[1]"/>;file=Operating_Config.xml;path=//SINOPEC_SETTING/OPTIONAL_FUNCTIONS/function[@id='22']/value</xsl:attribute>
  84. <xsl:value-of select="title[1]"/>
  85. </radio>
  86. <radio>
  87. <xsl:attribute name="command">checked=<xsl:value-of select="$check/name[2]=$check/function[@id='22']/value"/>;value=<xsl:value-of select="$check/name[2]"/>;file=Operating_Config.xml;path=//SINOPEC_SETTING/OPTIONAL_FUNCTIONS/function[@id='22']/value</xsl:attribute>
  88. <xsl:value-of select="title[2]"/>
  89. </radio>
  90. </menu>
  91. </Menu_029k10>
  92. VWWIGCAIVGCIAAAB