test.py 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. # -*- coding: UTF-8 -*-
  2. import io
  3. import sys
  4. import time
  5. from ssat_sdk.device_manage import ScbcCopyKey
  6. from ssat_sdk import sat_environment
  7. '''
  8. 接口说明:
  9. Open:打开串口
  10. 函数声明:
  11. int Open(串口号,波特率,数据位,奇偶校验,停止位)
  12. 返回1表示打开成功,返回0表示打开失败
  13. 示例:
  14. result = ScbcCopyKey.Open(3, 115200, 8, 0, 1)
  15. if result == 1:
  16. print('打开成功')
  17. else:
  18. print('打开失败')
  19. # 关闭串口
  20. ScbcCopyKey.Close()
  21. Close:关闭串口
  22. 函数声明:
  23. void Close()
  24. 无返回值
  25. 示例:
  26. ScbcCopyKey.Close()
  27. IsOpen:串口是否打开
  28. 函数声明:
  29. int IsOpen()
  30. 返回1表示已打开串口,返回0表示打开失败
  31. 示例:
  32. result = ScbcCopyKey.IsOpen()
  33. if result == 1:
  34. print('打开成功')
  35. else:
  36. print('打开失败')
  37. EnterFactory:进入工厂模式
  38. 函数声明:
  39. int EnterFactory()
  40. 返回1表示成功进入,返回0表示进入失败
  41. 示例:
  42. result = ScbcCopyKey.Open(3, 115200, 8, 0, 1)
  43. if result == 1:
  44. if ScbcCopyKey.EnterFactory():
  45. print "进入工厂模式成功"
  46. # do something
  47. # ............
  48. # 离开工厂模式
  49. ScbcCopyKey.LeaveFactory()
  50. else:
  51. print "进入工厂模式失败"
  52. ScbcCopyKey.Close()
  53. 其他接口略:
  54. GetXXXX:获取指定类型值
  55. SetXXXX(buffer, len):设置指定类型值,buffer为字节数组, len为buffer长度;
  56. SetXXXXBF(file):设置指定类型值,file为数据的文件路径;
  57. '''
  58. '''
  59. 用例为完整的调用流程:Open->EnterFactory->所有协议操作->LeaveFactory->Close;
  60. '''
  61. # 使用测试地址,测试数据进行测试;
  62. def testGetUserId():
  63. userName = "auto"
  64. password = "123456"
  65. token = ScbcCopyKey.HTTPLogin("http://test.dsp.server.qhmoka.com/login", userName, password, 1)
  66. if token.__len__():
  67. print u"login token = ", token
  68. userId = ScbcCopyKey.HTTPGetUserId("http://test.dsp.server.qhmoka.com/api/automation/getUserId", token, "MOKA-AF-MS6586-0000L", "fe6015c2966118d45e745d3bdeabc052f87e7847", "5c:ad:76:e0:55:79")
  69. if userId == -1:
  70. print u"获取userId失败"
  71. else:
  72. print u"userId=",userId
  73. if __name__ == "__main__":
  74. # 打开串口;
  75. result = ScbcCopyKey.Open(int(sat_environment.getSerialCOM()[3:]), 115200, 8, 0, 1)
  76. if result:
  77. # 进入工厂模式;
  78. if ScbcCopyKey.EnterFactory():
  79. print u"获取ProjectId",ScbcCopyKey.GetProjectId()
  80. print u"获取软件版本",ScbcCopyKey.GetSoftVersion()
  81. # HTTPGetUserId所需要参数;
  82. deviceId = ScbcCopyKey.GetDeviceId()
  83. print u"获取DeviceID",deviceId
  84. # HTTPGetUserId所需要参数;
  85. clientType = ScbcCopyKey.GetClientType()
  86. print u"获取ClientType",clientType
  87. # HTTPGetUserId所需要参数;
  88. mac = ScbcCopyKey.GetMAC()
  89. print u"获取MAC",mac
  90. print u"获取HDCP",ScbcCopyKey.GetHDCPKey()
  91. print u"获取HDCP22",ScbcCopyKey.GetHDCPKey22()
  92. print u"GetWidi",ScbcCopyKey.GetWidi()
  93. print u"GetNetflixESN",ScbcCopyKey.GetNetflixESN()
  94. print u"GetWidevine",ScbcCopyKey.GetWidevine()
  95. print u"GetCiKey",ScbcCopyKey.GetCiKey()
  96. print u"GetOSDLanguage",ScbcCopyKey.GetOSDLanguage()
  97. print u"GetShopLanguage",ScbcCopyKey.GetShopLanguage()
  98. print u"GetChannel",ScbcCopyKey.GetChannel()
  99. # 获取UserId;
  100. if 1:
  101. # 测试环境: http://test.dsp.server.qhmoka.com
  102. # 正式环境:https://dsp.server.qhmoka.com
  103. # 正式使用时,请使用正式环境的url地址替换测试环境url;
  104. userName = "auto"
  105. password = "123456"
  106. token = ScbcCopyKey.HTTPLogin("http://test.dsp.server.qhmoka.com/login", userName, password, 1)
  107. # token长度不为0, 表示成功获取token值;
  108. if token.__len__():
  109. print u"login token = ", token
  110. userId = ScbcCopyKey.HTTPGetUserId("http://test.dsp.server.qhmoka.com/api/automation/getUserId", token, clientType, deviceId, mac.replace('-', ':'))
  111. # userId==-1表示获取失败;
  112. if userId == -1:
  113. print u"获取userId失败"
  114. else:
  115. print u"userId=",userId
  116. if 0:
  117. file = r"D:\SAT\Allkey\RT2851-1PCS\DID\did1711.bin"
  118. print u"SetDeviceId", ScbcCopyKey.SetDeviceIdBF(file)
  119. file = r"D:\SAT\Allkey\RT2851-1PCS\MAC\TCL_MAC_CC-A1-2B-09-01-C3.bin"
  120. print u"SetMAC", ScbcCopyKey.SetMACBF(file)
  121. file = r"D:\SAT\Allkey\RT2851-1PCS\RealTek1.4\Encoder3_00000004.bin"
  122. print u"SetHDCPBF", ScbcCopyKey.SetHDCPKeyBF(file)
  123. file = r"D:\SAT\Allkey\RT2851-1PCS\RealTek2.2\PUBHDCP22_0000_20190710_0053303.bin"
  124. print u"SetHDCP22BF", ScbcCopyKey.SetHDCPKey22BF(file)
  125. file = r"D:\SAT\Allkey\RT2851-1PCS\RT2851 CI KEY\00000478-0735185308117697.bin"
  126. print u"SetCiKeyBF", ScbcCopyKey.SetCiKeyBF(file)
  127. file = r"D:\SAT\Allkey\RT2851-1PCS\RT2851 widevine\RT2851-Widevine_111"
  128. print u"SetWidevineBF", ScbcCopyKey.SetWidevineBF(file)
  129. # 预置频道;
  130. '''
  131. 以下数值均为16进制
  132. "HZ": "01"
  133. "Poland": "02"
  134. "TTET": "03"
  135. "WX": "04"
  136. "NM": "05"
  137. "ODM": "06"
  138. "Vietnam": "07"
  139. "Thailand": "08"
  140. "Philippines": "09"
  141. "Indonesia": "0A"
  142. "Russia": "0B"
  143. "Egypt": "0C"
  144. "JAC": "0D"
  145. "Pakistan": "0E"
  146. "Benne": "0F"
  147. "Araby": "10"
  148. "Eltholathia": "11"
  149. "Tunisia": "12"
  150. "UPAC": "14"
  151. "Condor": "13"
  152. "PKV": "15"
  153. "LIXIANG": "16"
  154. "LEXUAN": "17"
  155. "TOSHIBA": "18"
  156. "Algeria": "19"
  157. "CVT": "1A"
  158. "SouthAfrica": "1B"
  159. "ORION": "1C"
  160. "Mexico": "1D"
  161. "RV": "1E"
  162. "SEMP": "1F"
  163. '''
  164. # HZ
  165. print "SetChannel", ScbcCopyKey.SetChannel(1)
  166. # Mexico = 0x1D
  167. print "SetChannel", ScbcCopyKey.SetChannel(29)
  168. # 显示工厂菜单;
  169. print "ShowFactoryMenu", ScbcCopyKey.ShowFactoryMenu()
  170. time.sleep(2)
  171. print "HideFactoryMenu", ScbcCopyKey.HideFactoryMenu()
  172. # 显示工厂内容;
  173. print "ShowFactoryInformation", ScbcCopyKey.ShowFactoryInformation()
  174. time.sleep(2)
  175. print "HideFactoryInformation", ScbcCopyKey.HideFactoryInformation()
  176. # 用例中不开启老化;
  177. if 0:
  178. # 进入老化模式;
  179. print "EnterAgingModel", ScbcCopyKey.EnterAgingModel()
  180. time.sleep(10)
  181. print "LeaveAgingModel", ScbcCopyKey.LeaveAgingModel()
  182. # 读取老化时间;
  183. print "ReadAgingTime", ScbcCopyKey.ReadAgingTime()
  184. if 0:
  185. # 红绿蓝增益;
  186. print "SetRedGainRegister", ScbcCopyKey.SetRedGainRegister(100)
  187. print "SetGreenGainRegister", ScbcCopyKey.SetGreenGainRegister(200)
  188. print "SetBlueGainRegister", ScbcCopyKey.SetBlueGainRegister(300)
  189. # 红绿蓝偏移;
  190. print "SetRedOffsetRegister", ScbcCopyKey.SetRedOffsetRegister(100)
  191. print "SetGreenOffsetRegister", ScbcCopyKey.SetGreenOffsetRegister(200)
  192. print "SetBlueOffsetRegister", ScbcCopyKey.SetBlueOffsetRegister(300)
  193. # 离开工厂模式;
  194. ScbcCopyKey.LeaveFactory()
  195. #endif
  196. # 关闭串口
  197. ScbcCopyKey.Close()
  198. #endif