public override byte[] toRaw() { try { if (this.Cmd == WRITE_CMD) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + MESSAGE_TEXT_COUNTER]; } else { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getSMSTextAV(this.SimNumber)); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; if (this.Cmd == AbstractPacket.WRITE_CMD) { byte[] temp = Encoding.BigEndianUnicode.GetBytes(this.Message); if (temp.Length > MESSAGE_TEXT_COUNTER) { throw new IndexOutOfRangeException(); } byte[] message_bytes = new byte[MESSAGE_TEXT_COUNTER]; Array.Copy(temp, 0, message_bytes, 0, temp.Length); Array.Copy(message_bytes, 0, packet, cIndex, MESSAGE_TEXT_COUNTER); cIndex += MESSAGE_TEXT_COUNTER; } return(base.toRaw()); } catch (Exception e) { throw; } }
public override byte[] toRaw() { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = AbstractPacket.READ_CMD; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getInboxAVBound(this.SimNumber)[0] + this.Index); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; addCRC(); return(packet); }
public override byte[] toRaw() { if (this.Cmd == WRITE_CMD) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + NUMBER_COUNTER + ID_COUNTER + STATUS_COUNTER]; } else { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getRegistrationAVBound(this.SimNumber)[0] + Index); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; if (this.Cmd == WRITE_CMD) { number = number.Substring(2); int num = Convert.ToInt32(number); byte[] arr_number = PacketUtility.IntToByteArray(num); Array.Copy(arr_number, 0, packet, cIndex, NUMBER_COUNTER); cIndex += NUMBER_COUNTER; byte[] arr_id = { 0x00 }; Array.Copy(arr_id, 0, packet, cIndex, ID_COUNTER); cIndex += ID_COUNTER; byte[] arr_status = { 0x00 }; Array.Copy(arr_status, 0, packet, cIndex, STATUS_COUNTER); cIndex += STATUS_COUNTER; } return(base.toRaw()); }
public override byte[] toRaw() { if (this.Cmd == WRITE_CMD) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + START_COUNTER + FINISH_COUNTER + Unused_COUNTER + WORKING_INDEX_COUNTER + RES_COUNTER]; } else { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getActivationAV(this.SimNumber)); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; if (this.Cmd == AbstractPacket.WRITE_CMD) { packet[cIndex] = (byte)Start; cIndex += START_COUNTER; packet[cIndex] = (byte)Finish; cIndex += FINISH_COUNTER; cIndex += Unused_COUNTER; // third byte in data is already unused, 4th byte is related to working index packet[cIndex] = (byte)Start; // Working index should be equal to start value cIndex += WORKING_INDEX_COUNTER; byte[] res = { 0x00, 0x00, 0x00, 0x00 }; Array.Copy(res, 0, packet, cIndex, RES_COUNTER); cIndex += RES_COUNTER; } return(base.toRaw()); }
public override byte[] toRaw() { if (this.Cmd == WRITE_CMD) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + STATUS_COUNTER]; } else // e.g read and ... { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; // TODO : should be investigated later } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getSendAV(this.SimNumber)); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; packet[cIndex] = (byte)Status; cIndex += STATUS_COUNTER; return(base.toRaw()); }
public override byte[] toRaw() { if (ussdType == USSDType.Write) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + MESSAGE_COUNTER + RES_COUNTER]; } else if (ussdType == USSDType.Execute) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + RES_COUNTER]; } else if (ussdType == USSDType.Read) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; if (ussdType == USSDType.Write) { this.Cmd = AbstractPacket.WRITE_CMD; } else if (ussdType == USSDType.Execute) { this.Cmd = AbstractPacket.EXECUTE_CMD; } else if (ussdType == USSDType.Read) { this.Cmd = AbstractPacket.READ_CMD; } packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; switch (this.ussdType) { case USSDType.Write: add_var = PacketUtility.IntToTwoBytes(getUSSDWriteAV(this.SimNumber)); break; case USSDType.Read: add_var = PacketUtility.IntToTwoBytes(getUSSDReadAV(this.SimNumber)); break; case USSDType.Execute: add_var = PacketUtility.IntToTwoBytes(getUSSDExecuteAV(this.SimNumber)); break; } Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; if (this.ussdType == USSDType.Write) { byte[] temp = Encoding.UTF8.GetBytes(this.RequestAnswer); byte[] code_bytes = new byte[300]; Array.Copy(temp, 0, code_bytes, 0, temp.Length); Array.Copy(code_bytes, 0, packet, cIndex, MESSAGE_COUNTER); cIndex += MESSAGE_COUNTER; } return(base.toRaw()); }