test.py 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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. if __name__ == "__main__":
  62. # HTTP接口,获取UserId
  63. if 1:
  64. # 测试环境: http://test.dsp.server.qhmoka.com
  65. # 正式环境:https://dsp.server.qhmoka.com
  66. # 正式使用时,请使用正式环境的url地址替换测试环境url;
  67. token = ScbcCopyKey.HTTPLogin("http://test.dsp.server.qhmoka.com/login", "auto", "123456", 1)
  68. if token.__len__():
  69. print token
  70. userId = ScbcCopyKey.HTTPGetUserId("http://test.dsp.server.qhmoka.com/api/automation/getUserId", token, "MOKA-AF-MS6586-0000L", "fe6015c2966118d45e745d3bdeabc052f87e7847", "5c:ad:76:e0:55:79")
  71. if userId == -1:
  72. print u"获取userId失败"
  73. print userId
  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. print u"获取DeviceID",ScbcCopyKey.GetDeviceId()
  82. print u"获取ClientType",ScbcCopyKey.GetClientType()
  83. print u"获取MAC",ScbcCopyKey.GetMAC()
  84. print u"获取HDCP",ScbcCopyKey.GetHDCPKey()
  85. print u"获取HDCP22",ScbcCopyKey.GetHDCPKey22()
  86. print u"GetWidi",ScbcCopyKey.GetWidi()
  87. print u"GetNetflixESN",ScbcCopyKey.GetNetflixESN()
  88. print u"GetWidevine",ScbcCopyKey.GetWidevine()
  89. print u"GetCiKey",ScbcCopyKey.GetCiKey()
  90. print u"GetOSDLanguage",ScbcCopyKey.GetOSDLanguage()
  91. print u"GetShopLanguage",ScbcCopyKey.GetShopLanguage()
  92. print u"GetChannel",ScbcCopyKey.GetChannel()
  93. if 0:
  94. file = r"D:\SAT\Allkey\RT2851-1PCS\DID\did1711.bin"
  95. print u"SetDeviceId", ScbcCopyKey.SetDeviceIdBF(file)
  96. file = r"D:\SAT\Allkey\RT2851-1PCS\MAC\TCL_MAC_CC-A1-2B-09-01-C3.bin"
  97. print u"SetMAC", ScbcCopyKey.SetMACBF(file)
  98. file = r"D:\SAT\Allkey\RT2851-1PCS\RealTek1.4\Encoder3_00000004.bin"
  99. print u"SetHDCPBF", ScbcCopyKey.SetHDCPKeyBF(file)
  100. file = r"D:\SAT\Allkey\RT2851-1PCS\RealTek2.2\PUBHDCP22_0000_20190710_0053303.bin"
  101. print u"SetHDCP22BF", ScbcCopyKey.SetHDCPKey22BF(file)
  102. file = r"D:\SAT\Allkey\RT2851-1PCS\RT2851 CI KEY\00000478-0735185308117697.bin"
  103. print u"SetCiKeyBF", ScbcCopyKey.SetCiKeyBF(file)
  104. file = r"D:\SAT\Allkey\RT2851-1PCS\RT2851 widevine\RT2851-Widevine_111"
  105. print u"SetWidevineBF", ScbcCopyKey.SetWidevineBF(file)
  106. # 预置频道;
  107. '''
  108. 以下数值均为16进制
  109. "HZ": "01"
  110. "Poland": "02"
  111. "TTET": "03"
  112. "WX": "04"
  113. "NM": "05"
  114. "ODM": "06"
  115. "Vietnam": "07"
  116. "Thailand": "08"
  117. "Philippines": "09"
  118. "Indonesia": "0A"
  119. "Russia": "0B"
  120. "Egypt": "0C"
  121. "JAC": "0D"
  122. "Pakistan": "0E"
  123. "Benne": "0F"
  124. "Araby": "10"
  125. "Eltholathia": "11"
  126. "Tunisia": "12"
  127. "UPAC": "14"
  128. "Condor": "13"
  129. "PKV": "15"
  130. "LIXIANG": "16"
  131. "LEXUAN": "17"
  132. "TOSHIBA": "18"
  133. "Algeria": "19"
  134. "CVT": "1A"
  135. "SouthAfrica": "1B"
  136. "ORION": "1C"
  137. "Mexico": "1D"
  138. "RV": "1E"
  139. "SEMP": "1F"
  140. '''
  141. # HZ
  142. print "SetChannel", ScbcCopyKey.SetChannel(1)
  143. # Mexico = 0x1D
  144. print "SetChannel", ScbcCopyKey.SetChannel(29)
  145. # 显示工厂菜单;
  146. print "ShowFactoryMenu", ScbcCopyKey.ShowFactoryMenu()
  147. time.sleep(2)
  148. print "HideFactoryMenu", ScbcCopyKey.HideFactoryMenu()
  149. # 显示工厂内容;
  150. print "ShowFactoryInformation", ScbcCopyKey.ShowFactoryInformation()
  151. time.sleep(2)
  152. print "HideFactoryInformation", ScbcCopyKey.HideFactoryInformation()
  153. # 用例中不开启老化;
  154. if 0:
  155. # 进入老化模式;
  156. print "EnterAgingModel", ScbcCopyKey.EnterAgingModel()
  157. time.sleep(10)
  158. print "LeaveAgingModel", ScbcCopyKey.LeaveAgingModel()
  159. # 读取老化时间;
  160. print "ReadAgingTime", ScbcCopyKey.ReadAgingTime()
  161. if 0:
  162. # 红绿蓝增益;
  163. print "SetRedGainRegister", ScbcCopyKey.SetRedGainRegister(100)
  164. print "SetGreenGainRegister", ScbcCopyKey.SetGreenGainRegister(200)
  165. print "SetBlueGainRegister", ScbcCopyKey.SetBlueGainRegister(300)
  166. # 红绿蓝偏移;
  167. print "SetRedOffsetRegister", ScbcCopyKey.SetRedOffsetRegister(100)
  168. print "SetGreenOffsetRegister", ScbcCopyKey.SetGreenOffsetRegister(200)
  169. print "SetBlueOffsetRegister", ScbcCopyKey.SetBlueOffsetRegister(300)
  170. # 离开工厂模式;
  171. ScbcCopyKey.LeaveFactory()
  172. #endif
  173. # 关闭串口
  174. ScbcCopyKey.Close()
  175. #endif