可以刷写
This commit is contained in:
parent
1328be60b7
commit
dce7399998
@ -19,5 +19,6 @@
|
||||
<file name="Diag36code.aardio" path="user\Diag36code.aardio" comment="user\Diag36code.aardio"/>
|
||||
<file name="S19Decode.aardio" path="user\S19Decode.aardio" comment="user\S19Decode.aardio"/>
|
||||
<file name="Diag37code.aardio" path="user\Diag37code.aardio" comment="user\Diag37code.aardio"/>
|
||||
<file name="Diag11code.aardio" path="user\Diag11code.aardio" comment="user\Diag11code.aardio"/>
|
||||
</folder>
|
||||
</project>
|
||||
|
@ -83,15 +83,22 @@ FuncDisplay = function(str){
|
||||
|
||||
|
||||
loadcodex("\user\Diag10code.aardio");
|
||||
loadcodex("\user\Diag11code.aardio");
|
||||
loadcodex("\user\Diag22code.aardio");
|
||||
loadcodex("\user\Diag85code.aardio");
|
||||
loadcodex("\user\Diag28code.aardio");
|
||||
loadcodex("\user\Diag7Fcode.aardio");
|
||||
loadcodex("\user\Diag27code.aardio");
|
||||
loadcodex("\user\Diag2Ecode.aardio");
|
||||
loadcodex("\user\DiagBootcode.aardio");
|
||||
loadcodex("\user\Diag28code.aardio");
|
||||
loadcodex("\user\Diag31code.aardio");
|
||||
loadcodex("\user\Diag34code.aardio");
|
||||
loadcodex("\user\Diag36code.aardio");
|
||||
loadcodex("\user\Diag37code.aardio");
|
||||
loadcodex("\user\Diag7Fcode.aardio");
|
||||
loadcodex("\user\Diag85code.aardio");
|
||||
|
||||
loadcodex("\user\DiagBootcode.aardio");
|
||||
loadcodex("\user\S19Decode.aardio");
|
||||
|
||||
|
||||
RespState = 0;
|
||||
|
||||
FuncDiagPro = function(diagmsg){
|
||||
@ -120,6 +127,9 @@ FuncDiagPro = function(diagmsg){
|
||||
case 0x7F {
|
||||
FuncDiag7FPro(table.slice(diagmsg.data,1,diagmsg.len))
|
||||
}
|
||||
case 0x6E {
|
||||
FuncDiag2EPro(table.slice(diagmsg.data,1,diagmsg.len))
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
|
9
user/Diag11code.aardio
Normal file
9
user/Diag11code.aardio
Normal file
@ -0,0 +1,9 @@
|
||||
//发送
|
||||
FuncReq11 = function(num){
|
||||
var txdata = {0x2,0x11,num,0x00,0x00,0x00,0x00,0x00};
|
||||
CANHw.SendMsg(DiagReqID,txdata);
|
||||
}
|
||||
//接收
|
||||
FuncDiag11Pro = function(data){
|
||||
FuncDisplay("复位成功")
|
||||
}
|
@ -26,7 +26,7 @@ FuncReq2E = function(did,data){
|
||||
else {
|
||||
var txdata = {3+#data,0x2E,did>>8,did&0xff,0,0,0,0};
|
||||
for(i=1;#data;1){
|
||||
txdata[5+i] = data[i];
|
||||
txdata[4+i] = data[i];
|
||||
}
|
||||
CANHw.SendMsg(DiagReqID,txdata);
|
||||
|
||||
|
@ -4,6 +4,17 @@ FuncReq31EraseFlash = function(addr,len){
|
||||
FuncReq31(data);
|
||||
}
|
||||
|
||||
FuncReq31CheckLogicBlock = function(addr,len){
|
||||
var data = {0x02,0x02,0x44,addr>>24,addr>>16,addr>>8,addr,len>>24,len>>16,len>>8,len};
|
||||
FuncReq31(data);
|
||||
}
|
||||
FuncReq31CheckPD = function(){//Programming Dependencies
|
||||
var data = {0xFF,0x01};
|
||||
FuncReq31(data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//发送
|
||||
FuncReq31 = function(data){
|
||||
@ -15,7 +26,7 @@ FuncReq31 = function(data){
|
||||
else {
|
||||
var txdata = {2+#data,0x31,0x01,0, 0,0,0,0};
|
||||
for(i=1;#data;1){
|
||||
txdata[5+i] = data[i];
|
||||
txdata[3+i] = data[i];
|
||||
}
|
||||
CANHw.SendMsg(DiagReqID,txdata);
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ FuncGetSendStatus = function(){
|
||||
return flag_sendend;
|
||||
}
|
||||
FuncSendNextBlock = function(){
|
||||
if(alldata>0x400){
|
||||
if(#alldata>0x400){
|
||||
FuncReq36(blocknum,table.slice(alldata,1,0x400));
|
||||
alldata = table.slice(alldata,0x401,)
|
||||
}
|
||||
@ -45,9 +45,20 @@ FuncSendNextBlock = function(){
|
||||
//发送
|
||||
FuncReq36 = function(num,data){
|
||||
len = #data+2;
|
||||
if(len > 7){
|
||||
var txdata = {0x10+(len>>8),len&0xff,0x36,num&0xff,data[1],data[2],data[3],data[4]};
|
||||
CANHw.SendMsg(DiagReqID,txdata);
|
||||
FuncPushPackage(DiagReqID,table.slice(data,5));
|
||||
}
|
||||
else {
|
||||
var txdata = {len,0x36,num&0xff,0, 0,0,0,0};
|
||||
for(i=1;#data;1){
|
||||
txdata[i+3] = data[i];
|
||||
}
|
||||
|
||||
CANHw.SendMsg(DiagReqID,txdata);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//接收
|
||||
|
@ -16,8 +16,11 @@ FuncDiag7FPro = function(data){
|
||||
errNRC = data[2];
|
||||
select(errNRC) {
|
||||
case 0x78 {
|
||||
if(errSID != 0x36){
|
||||
FuncDisplay("服务正忙")
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
FuncDisplay("错误 - NRC:" + tostring(errNRC,16))
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ FuncSendBlockInit = function(){
|
||||
blocknum = 1;
|
||||
if(alldata != null){
|
||||
blocknum = 1;
|
||||
FuncStartSendBlock(alldata[blocknum].["data"])
|
||||
FuncStartSendBlock(alldata[blocknum]["data"])
|
||||
}
|
||||
|
||||
}
|
||||
@ -82,7 +82,7 @@ FuncSendBlockApp = function(){
|
||||
select(sendblockstate) {
|
||||
case 0{
|
||||
if(FuncSendBlockApp_sendflag == 0){
|
||||
FuncReq34(alldata[blocknum].["address"],#alldata[blocknum].["data"]);
|
||||
FuncReq34(alldata[blocknum]["address"],#alldata[blocknum]["data"]);
|
||||
FuncSendBlockApp_sendflag = 1;
|
||||
RespState = 0;
|
||||
bootcount = 0;
|
||||
@ -96,7 +96,7 @@ FuncSendBlockApp = function(){
|
||||
|
||||
}
|
||||
case 1 {
|
||||
FuncStartSendBlock(alldata[blocknum].["data"]);//初始化
|
||||
FuncStartSendBlock(alldata[blocknum]["data"]);//初始化
|
||||
FuncSendBlockApp_sendflag = 0;
|
||||
sendblockstate += 1;
|
||||
}
|
||||
@ -151,6 +151,13 @@ FuncBootSeq = function(){
|
||||
select(bootstate) {
|
||||
case 0 {
|
||||
//读取当前会话
|
||||
/*
|
||||
var bootdata = FuncGetAllData();
|
||||
if(#bootdata < 1){
|
||||
FuncDisplay("请打开文件");
|
||||
boottimer.disable();
|
||||
return 0;
|
||||
}*/
|
||||
if(sendstate == 0){
|
||||
FuncReadDID(0xF186);
|
||||
FuncClearState();
|
||||
@ -242,8 +249,9 @@ FuncBootSeq = function(){
|
||||
}
|
||||
case 9 {
|
||||
if(sendstate == 0){
|
||||
FuncDIDWriteStr(0xf198,"0123456789abcdef1234");//写入repair_shopcode
|
||||
FuncClearState();
|
||||
FuncDIDWriteStr(0xf198,"0123456789abcdef1234");//写入repair_shopcode
|
||||
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x2E);
|
||||
@ -259,7 +267,7 @@ FuncBootSeq = function(){
|
||||
var day = BCD_Conv(time.now().day);
|
||||
FuncReq2E(0XF199,{year1,year2,month,day})
|
||||
FuncClearState();
|
||||
|
||||
console.log("写入installation_date")
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x2E);
|
||||
@ -289,17 +297,76 @@ FuncBootSeq = function(){
|
||||
}
|
||||
}
|
||||
case 13 {
|
||||
if(sendstate == 0){//发送数据
|
||||
FuncSendBlockInit();
|
||||
if(sendstate == 0){//CheckLogicBlock
|
||||
FuncReq31CheckLogicBlock(0x00FE0000,0x00019FCC);
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncSendBlockApp();
|
||||
var ret = FuncWait(0x31);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
case 14 {
|
||||
if(sendstate == 0){////Programming Dependencies
|
||||
FuncReq31CheckPD();
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x31);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
case 15 {
|
||||
if(sendstate == 0){//复位
|
||||
FuncReq11(0x01);
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x11);
|
||||
nextstate(ret);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
case 16 {
|
||||
if(sendstate == 0){
|
||||
FuncReq10(true,0x03);//进入扩展会话
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x10);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
case 17 {
|
||||
if(sendstate == 0){
|
||||
FuncReq28(0x00,0x01);//开启发送
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x28);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
case 18 {
|
||||
if(sendstate == 0){
|
||||
FuncReq85(0x01);//开启DTC
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x85);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
case 19 {
|
||||
if(sendstate == 0){
|
||||
FuncReq10(true,0x01);//进入默认会话
|
||||
FuncClearState();
|
||||
}
|
||||
else {
|
||||
var ret = FuncWait(0x10);
|
||||
nextstate(ret);
|
||||
}
|
||||
}
|
||||
else {
|
||||
FuncDisplay("刷写完成")
|
||||
boottimer.disable();
|
||||
|
Loading…
x
Reference in New Issue
Block a user