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