public int WriteflashDataAPI(byte cmd, int datalen, int CursectionNum, byte[] flashdata) { byte[] txdata = new byte[200]; byte[] checkdata = new byte[200]; int dataCRC = 0; int regedistNum = 0; int result; if (datalen <= 0 || datalen > 200) { return(-1); } txdata[0] = 0x3a; txdata[1] = 0x16; txdata[2] = 0xf0; txdata[3] = (byte)datalen; txdata[4] = cmd; txdata[5] = (byte)(CursectionNum & 0x00ff); txdata[6] = (byte)((CursectionNum >> 8) & 0x00ff); for (int i = 0; i < flashdata.Length; i++) { txdata[7 + i] = flashdata[i]; } for (int i = 0; i < datalen + 8 - 5; i++) { checkdata[i] = txdata[i + 1]; } dataCRC = CHECKSUM.checksum(checkdata, (ushort)(datalen + 8 - 5)); txdata[datalen + 8 - 3] = (byte)dataCRC; txdata[datalen + 8 - 4] = (byte)(dataCRC >> 8); // txdata[datalen + 8 - 2] = 0x0d; // txdata[datalen + 8 - 1] = 0x0a; result = SendRS485DataApi(txdata, 6 + datalen); return(result); }
public int WriteflashCommandAPI(int datalen, byte[] dat) { byte[] txdata = new byte[50]; byte[] checkdata = new byte[50]; int dataCRC = 0; int result = 0; txdata[0] = 0x3a; txdata[1] = 0x16; txdata[2] = 0xf0; txdata[3] = (byte)datalen; for (int i = 0; i < datalen; i++) { txdata[4 + i] = dat[i]; } for (int i = 0; i < datalen + 8 - 5; i++) { checkdata[i] = txdata[i + 1]; } dataCRC = CHECKSUM.checksum(checkdata, (ushort)(datalen + 8 - 5)); txdata[datalen + 8 - 3] = (byte)dataCRC; txdata[datalen + 8 - 4] = (byte)(dataCRC >> 8); // txdata[datalen + 8 - 2] = 0x0d; // txdata[datalen + 8 - 1] = 0x0a; result = SendRS485DataApi(txdata, 6 + datalen); return(result); }