private void procData(byte[] buff) { //if (SystemUnit.getCRC(buff, 0, buff.Length - 2) != (buff[buff.Length - 2] << 8 | buff[buff.Length - 1])) //{ // Log.WriteLog("CommPort", "ERROR", "【procData】校验失败!接收数据:" + SystemUnit.ToHexString(buff)); // return; //} //读数据模式下回复 if (buff[1] == 0x03 && buff[2] == Global.sizeDistance) { if (Global.runMode == RunMode.READSIZE) { for (int i = 0; i < Global.dataCount; i++) { Global.procData[i].size = (buff[3 + 4 * i] << 8 | buff[4 + 4 * i] | buff[5 + 4 * i] << 24 | buff[6 + 4 * i] << 16); } SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_READSIZEBACK, (int)ReturnResult.SUCCESS, (int)DataType.SIZE); } else if (Global.runMode == RunMode.READPLAN) { for (int i = 0; i < Global.dataCount; i++) { Global.procData[i].planCount = (buff[3 + 4 * i] << 8 | buff[4 + 4 * i] | buff[5 + 4 * i] << 24 | buff[6 + 4 * i] << 16); } SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_READPLANBACK, (int)ReturnResult.SUCCESS, (int)DataType.PLAN); } // if(buff[2] == Global.dataCount*2) // { // for(int i =0;i< Global.dataCount; i++) // { // Global.procData[i].pin = (short)(buff[3 + 2 * i] << 8 | buff[3 + 2 * i + 1]); // } // SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_READBACK, (int)ReturnResult.SUCCESS, (int)DataType.PIN); // } } //写入数据时回复 if (Global.runMode == RunMode.WRITESIZE && buff[1] == 0x10) { int offset = buff[2] << 8 | buff[3]; if (offset == Global.sizeOffset) { SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_WRITESIZEBACK, (int)ReturnResult.SUCCESS, (int)DataType.SIZE); } } else if (Global.runMode == RunMode.WRITEPLAN && buff[1] == 0x10) { int offset = buff[2] << 8 | buff[3]; if (offset == Global.planOffset) { SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_WRITEPLANBACK, (int)ReturnResult.SUCCESS, (int)DataType.PLAN); } } }
private void procData(byte[] buff) { //if (SystemUnit.getCRC(buff, 0, buff.Length - 2) != (buff[buff.Length - 2] << 8 | buff[buff.Length - 1])) //{ // Log.WriteLog("CommPort", "ERROR", "【procData】校验失败!接收数据:" + SystemUnit.ToHexString(buff)); // return; //} //读数据模式下回复 if (buff[1] == 0x03 && Global.runMode == RunMode.READ) { if (buff[2] == 8) { Global.procData[Global.readIndex].size = (buff[3] << 8 | buff[4] | buff[5] << 24 | buff[6] << 16); Global.procData[Global.readIndex].planCount = (buff[7] << 8 | buff[8] | buff[9] << 24 | buff[10] << 16); SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_READBACK, (int)ReturnResult.SUCCESS, (int)DataType.SIZEANDPLAN); } if (buff[2] == Global.dataCount * 2) { for (int i = 0; i < Global.dataCount; i++) { Global.procData[i].pin = (short)(buff[3 + 2 * i] << 8 | buff[3 + 2 * i + 1]); } SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_READBACK, (int)ReturnResult.SUCCESS, (int)DataType.PIN); } } //写入数据时回复 if (Global.runMode == RunMode.WRITE && buff[1] == 0x10) { int offset = buff[2] << 8 | buff[3]; if (Global.writeIndex == Global.dataCount && offset == Global.pinOffset) { SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_WRITEBACK, (int)ReturnResult.SUCCESS, (int)DataType.PIN); } else if (offset == Global.offset + 6 * Global.writeIndex) { SystemUnit.PostMessage(SystemUnit.HWND_BROADCAST, SystemUnit.WM_WRITEBACK, (int)ReturnResult.SUCCESS, (int)DataType.SIZEANDPLAN); } } }