{"text_format":"3","workbook":"xlsx","n_sheets":2,"sheets":["Revision","MES Requirements"],"not_rendered":{"images":19},"read":"whole","date_system":"1900"}

{"sheet":"Revision","index":0,"n_rows":4,"n_cols":1,"rows_kept":4}
["1、所有的信息不能出现中文；"]
["2、所有Function的msg参数均为error msg，只在error时抛出异常信息；"]
["3、请严格按照文档提供的名称、参数类型、返回信息格式开发；"]
["4、参数类型可以使用CStr（如：CStr variables_json），也可以使用使用字符数组（如：uint8_t *variables_json）；"]

{"sheet":"MES Requirements","index":1,"n_rows":36,"n_cols":10,"rows_kept":36,"merged":[[0,0,1,0],[0,1,1,1],[0,2,1,2],[0,3,1,3],[0,4,1,4],[0,5,1,5],[0,6,1,6],[0,7,1,7],[0,8,1,8],[0,9,1,9],[3,0,4,0],[3,1,4,1],[3,2,4,2],[3,3,4,3],[3,4,4,4],[3,5,4,5],[3,6,4,6],[3,7,4,7],[3,8,4,8],[3,9,4,9],[6,0,7,0],[6,1,7,1],[6,2,7,2],[6,3,7,3],[6,4,7,4],[6,5,7,5],[6,6,7,6],[6,7,7,7],[6,8,7,8],[6,9,7,9],[8,0,9,0],[8,1,9,1],[8,2,9,2],[8,3,9,3],[8,4,9,4],[8,5,9,5],[8,6,9,6],[8,7,9,7],[8,8,9,8],[8,9,9,9],[10,0,11,0],[10,1,11,1],[10,2,11,2],[10,3,11,3],[10,4,11,4],[10,7,11,7],[10,8,11,8],[10,9,11,9],[12,0,14,0],[12,1,14,1],[12,2,14,2],[12,3,14,3],[12,4,14,4],[12,7,14,7],[12,8,14,8],[12,9,14,9],[15,0,17,0],[15,1,17,1],[15,2,17,2],[15,3,17,3],[15,4,17,4],[15,7,17,7],[15,8,17,8],[15,9,17,9],[18,0,20,0],[18,1,20,1],[18,2,20,2],[18,3,20,3],[18,4,20,4],[18,7,20,7],[18,8,20,8],[18,9,20,9],[21,0,23,0],[21,1,23,1],[21,2,23,2],[21,3,23,3],[21,4,23,4],[21,7,23,7],[21,8,23,8],[21,9,23,9],[24,0,26,0],[24,1,26,1],[24,2,26,2],[24,3,26,3],[24,4,26,4],[24,7,26,7],[24,8,26,8],[24,9,26,9],[27,0,29,0],[27,1,29,1],[27,2,29,2],[27,3,29,3],[27,4,29,4],[27,7,29,7],[27,8,29,8],[27,9,29,9],[30,0,32,0],[30,1,32,1],[30,2,32,2],[30,3,32,3],[30,4,32,4],[30,7,32,7],[30,8,32,8],[30,9,32,9],[33,0,35,0],[33,1,35,1],[33,2,35,2],[33,3,35,3],[33,4,35,4],[33,7,35,7],[33,8,35,8],[33,9,35,9]]}
[null,"翻译文本：MES返回错误信息英文，中英文比照如右",{"$nulls":7},"非法功能={\"code\":\"01\", \"message\":\"Illegal function\"}\n非法数据={\"code\":\"02\", \"message\":\"Illegal data\"}\n非法数据值={\"code\":\"03\", \"message\":\"Illegal data value\"}\n设备故障={\"code\":\"04\", \"message\":\"\"Device malfunction\"}\n工序互检失败={\"code\":\"05\", \"message\":\"Process intercheck failure\"}\n条码不存在={\"code\":\"06\", \"message\":\"SN is not exist\"}\n品质NG={\"code\":\"07\", \"message\":\"Quality NG\"}\n找不到设备信息={\"code\":\"08\", \"message\":\"Device information not found\"}\n找不到产品代码={\"code\":\"09\", \"message\":\"Product code not found\"}\n上传数据没有条码信息={\"code\":\"10\", \"message\":\"No barcode information in uploaded data\"}\n上工序NG={\"code\":\"11\", \"message\":\"NG in previous process\"}\n通知单错误={\"code\":\"12\", \"message\":\"Notification error\"}\n已超过规定时间={\"code\":\"13\", \"message\":\"Exceeded specified time\"}\n未达到扫描时间={\"code\":\"14\", \"message\":\"Did not reach scanning time\"}\n匹配失败={\"code\":\"15\", \"message\":\"Matching failure\"}\n条码ng次数已达到设备ng次数={\"code\":\"16\", \"message\":\"Barcode NG count has reached device NG count\"}\n条码ng后的ok次数不够={\"code\":\"17\", \"message\":\"Insufficient OK count after barcode NG\"}\n工序暂停={\"code\":\"18\", \"message\":\"Process paused\"}\n条码锁定={\"code\":\"19\", \"message\":\"Barcode locked\"}\n超过设备ok次数={\"code\":\"20\", \"message\":\"Exceeded device OK count\"}\n打散投入错误={\"code\":\"21\", \"message\":\"Disassembly input error\"}\n设备编号已锁定={\"code\":\"22\", \"message\":\"Device ID locked\"}\n当前工序非该条码必过站={\"code\":\"23\", \"message\":\"Current process is not a mandatory station for this barcode\"}\n条码已锁定={\"code\":\"24\", \"message\":\"Barcode locked\"}\n获取[POWER]失败={\"code\":\"25\", \"message\":\"Get Power Error\"}\n拒绝连接={\"code\":\"26\", \"message\":\"MES Refuse Connect\"}\n1600999={\"code\":\"27\", \"message\":\"org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection\"}\n未能连接到MES=Failed to connect to MES,Please connect to the network.\n投入工序错误={\"code\":\"27\", \"message\":\"Input process error\"}\n参数为空。【条码(barcode)】={\"code\":\"28\", \"message\":\"SN is null\"}"]
[]
[null,"使用前，存放相关文件到机台运行目录",{"$nulls":5},"使用前需将截图内所有文件放置到机台运行目录"]
[null,"使用前，需确认Config.xml参数，具体如右说明",{"$nulls":5},"使用前，需确认Config.xml参数，具体如右说明",null,"Config.xml内配置参数，参数具体内容如下:\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Root>\n <!-- 日志存放路径 -->\n <logPath>D:/DllLog</logPath> \n <!-- 机台测试JOSN文件存放路径 -->\n <JsonPath>D:/data</JsonPath> \n <!-- 机台测试JOSN文件备份存放路径 -->\n <JsonBackoutPath>D:/dataBackout</JsonPath> \n <!-- 上传机台测试数据定时任务时间 默认5秒-->\n <upLoadDataTime>5</upLoadDataTime> \n\n\n  <!-- 互检接口地址 -->\n  <CheckIP>http://10.130.34.72:8088</CheckUrl>  \n  <CheckUrl>http://10.130.34.72:8088/request100</CheckUrl>  \n  <!-- 互检站点 -->\n  <equipment>W02FATP023</equipment>  <!-- 设备ID -->\n  <operator>zz</operator>  <!-- 操作人 -->\n  <equipmentNo>TP-TC03C</equipmentNo>  <!-- 设备编号 -->\n  <fixture>11</fixture>  <!-- 夹具号 -->\n   \n   \n  <!-- MES接口地址 -->\n  <MesUrlIP>http://gscapi-test.ggec.com.cn:8091</MesUrl>\n  <MesUrl>http://gscapi-test.ggec.com.cn:8091/itf/api</MesUrl>\n  <!-- MES sign -->\n  <sign>123456</sign>\n  <!-- MES code -->\n  <code>SONOS</code>\n  <!-- MES 3.1.1.数据上传 type -->\n  <sonosUploadVariablesByStation>sonosUploadVariablesByStation</sonosUploadVariablesByStation> \n  <!-- MES 3.1.2.MAC 分配 type -->\n  <sonosGetMacInfo>sonosGetMacInfo</sonosGetMacInfo> \n  <!-- 3.1.3.SKU、COLOR、REGION、SERILSID信息获取    type -->\n  <sonosGetBaseInfo>sonosGetBaseInfo</sonosGetBaseInfo>  \n  <!-- 3.1.4.测试结果上传    type -->\n  <sonosTestResultUpload>sonosTestResultUpload</sonosTestResultUpload>\n  <!--  3.1.5.子板SN信息获取 GetKeyPartsInfo    type -->\n  <sonosGetKeyPartsInfo>sonosGetKeyPartsInfo</sonosGetKeyPartsInfo>\n</Root>"]
[]
["BU","Function name","Functional","return value","description ","name","type","function description"]
["ALL","StartDB","Connect to FIS\n\n连接dll\n\n参照测试vi文件夹中StartDB.vi","int","作業結果，1：PASS、2：FAIL","msg","TCHAR *","int32_t StartDB(CStr msg);"]
[]
["ALL","StopDB","Disconnect FIS\n\n断开dll\n\n参照测试vi文件夹中StopDB.vi","int","作業結果，1：PASS、2：FAIL","msg","TCHAR *","int32_t StopDB(CStr msg);"]
[]
["ALL","CheckMBSno","Check SN\n\n互检接口，必须在config.xml里配置好站点信息\n\n参照测试vi文件夹中CheckMBSno.vi\n","int","作業結果，1：PASS、2：FAIL","sn","TCHAR *","int32_t CheckMBSno(CStr sn, CStr msg);\ncheck the test process, see if it should be tested under this station.",null,"sn: ：W0201A00000001到W0201A00000005\n"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","UploadTestResult","Upload result\n\n上传测试结果\n\npassfail:只能输入:pass、fail\n\n\n参照测试vi文件夹中UploadTestResult.vi","int","作業結果，1：PASS、2：FAIL","sn","const TCHAR *","int32_t UploadTestResult(CStr sn, CStr passfail, CStr msg);",null,"sn:    ：W0201A00000001到W0201A00000005\n\n\n\npassfail:只能输入:pass、fail"]
[{"$nulls":5},"passfail","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","SaveVariablesByStation_Json","Save variable to FIS\n\n存item信息，待用\n\n参照测试vi文件夹中SaveVariablesByStation_Json.vi","int","作業結果，1：PASS、2：FAIL","sn","const TCHAR *","int32_t SaveVariablesByStation_Json(CStr sn, CStr vars_jason, CStr msg);\nupload some information to FIS, e.g:[{\"Item\":\"PIN_Code\",\"Value\":\"111-222-33\"},{\"Item\":\"Region\",\"Value\":\"US\"}], QRcode, Submodel, Hwfeatures\n# mdputil -p\nVENDOR=1\nMODEL=23\nSUBMODEL=1\nSERIES_ID=A100 (dynamic)\nREVISION=11\nSERIAL=48A6B83AFFA1C\nREGION=1\nCOPYRIGHT='Copyright 2016 Sonos, Inc.'\nFLAGS=0x30 # (HAS_VERSION )\nHWFEATURES=0x0 # ()\nCH11SPURIMMUNITYLEVEL=0\nWIFITYPE=N\nMDPVERSION=6\nMDP2ENCVERSION=5\nMDP3VERSION=2\nPAGESPRESENT=0x7\nAUTHFLAGS=0x49bf # (verified)\nFUSEVAL=0xf # (fuse)\nREVOKED=0x1\nSWFEATURES=0x49be\nVARIANT=1\nSERIALSIG=OK\nPIN=123-45-678\nQR_CODE_PIN=663-92-493\nQR_CODE_URL=https://setup.ws.sonos.com/qr?d=AEimuDr/oQAXAAELAmY5JJM=\nLOCATION=0\nTestRail: Results\n\nitem相当于mes的name",null,"sn:      W0201A00000001到W0201A00000005\n\n\n\nvars_json: [{\"Item\":\"PIN_Code\",\"Value\":\"111-222-33\"}]"]
[{"$nulls":5},"vars_json","const TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL"," GetBurnInCustomNo","Get assign MAC\n\n获取MAC\n\n参照测试vi文件夹中GetBurnInCustomNo.vi","int","作業結果，1：PASS、2：FAIL","sn","TCHAR *","int32_t GetBurnInCustomNo(CStr sn,CStr mac, CStr msg);  e.g.:\"AABBCCDDEEFFG\"",null,"sn: ：W0201A00000001到W0201A00000005\n"]
[{"$nulls":5},"mac","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","GetKeyPartsInfo","get sub sn\n\n获取子版信息\n\n参照测试vi文件夹中GetKeyPartsInfo.vi","int","作業結果，1：PASS、2：FAIL","sn","const TCHAR *","int32_t GetKeyPartsInfo(CStr sn,CStr boards_json CStr msg);\nGet boards SNs, like POWER, CPU, TOP\ne.g.:\n[{\"Item\":\"POWER_BOARD\",\"Value\":\"NTB5921AG00314\"},{\"Item\":\"CI_BOARD\",\"Value\":\"NTB5918M100878\"},{\"Item\":\"BATTERY_SN\",\"Value\":\"8535-101211237945PM\"}]",null,"测试环境的CPU板件SN：W0201A00000001到W0201A00000005\n\n"]
[{"$nulls":5},"boards_Json","TCHAR*"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","GetVariablesByProduct","Get serils ID\n\n\n参照测试vi文件夹中GetVariablesByProduct.vi\n\n","int","作業結果，1：PASS、2：FAIL","sn","TCHAR *","int32_t GetVariablesByProduct(CStr sn, CStr seriesID CStr msg);\nget series ID, e.g : A200",null,"sn：W0201A00000001到W0201A00000005\n"]
[{"$nulls":5},"seriesID","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","GetVariablesBySNModel_Json","Get SKU and region\n\n参照测试vi文件夹中GetVariablesBySNModel_Json.vi","int","作業結果，1：PASS、2：FAIL","sn","const TCHAR *","int32_t GetVariablesBySNModel_Json(CStr sn, CStr variables_json, CStr msg);\nGet region ,e.g.:[{\"Item\":\"SKU\",\"Value\":\"ABCD\"},{\"Item\":\"Region\",\"Value\":\"US\"}]",null,"sn：W0201A00000001到W0201A00000005\n"]
[{"$nulls":5},"variables_json","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL","GetVariablesByStation_Json","get unit color(number code) and series ID and PIN_Code\n\n获取颜色和series ID，PIN_Code\n\n参照测试vi文件夹中GetVariablesByStation_Json.vi","int","作業結果，1：PASS、2：FAIL","sn","const TCHAR *","int32_t GetVariablesByStation_Json(CStr sn, CStr variables_jason,CStr msg);\ne.g.[{\"Item\":\"ColorCode\",\"Value\":\"2\"},{\"Item\":\"SeriesID[NTG]\",\"Value\":\"A100\"},{\"Item\":\"PIN_Code\",\"Value\":\"111-222-33\"}]\n\n\n#define MDP_VARIANT_NONE         0\n#define MDP_VARIANT_WHITE        1\n#define MDP_VARIANT_BLACK        2\n#define MDP_VARIANT_WHITE_GLOSS  3\n#define MDP_VARIANT_WHITE_MATTE  4\n#define MDP_VARIANT_BLACK_GLOSS  5\n#define MDP_VARIANT_BLACK_MATTE  6\n#define MDP_VARIANT_BLUE         7\n#define MDP_VARIANT_LIMITED      8\n#define MDP_VARIANT_SHADOW       9\n#define MDP_VARIANT_LUNAR_WHITE  10\n#define VARIANT_WILDCARD   11\n#define MDP_VARIANT_OLIVE   12\n#define MDP_VARIANT_WAVE   13\n#define MDP_VARIANT_SUNSET   14",null,"sn：W0201A00000001到W0201A00000005\n"]
[{"$nulls":5},"variables_json","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]
["ALL"," GetSNInfoByStation","get battery cell info\n\n信息\n\n参照测试vi文件夹中GetSNInfoByStation.vi","int","作業結果，1：PASS、2：FAIL","sn","TCHAR *","int32_t GetSNInfoByStation(CStr sn, CStr variables_jason,CStr msg);\ne.g:[{\"Item\":\"POWER_BOARD\",\"Value\":\"NTB5921AG00314\"},{\"Item\":\"BATTERY_SN\",\"Value\":\"8535-101211237945PM\"}]",null,"测试环境的CPU板件SN：W0201A00000001到W0201A00000005"]
[{"$nulls":5},"variables_json","TCHAR *"]
[{"$nulls":5},"msg","TCHAR *"]