Java Code Examples for javax.bluetooth.DataElement#DATSEQ
The following examples show how to use
javax.bluetooth.DataElement#DATSEQ .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ServiceRecordSerializer.java From pluotsorbet with GNU General Public License v2.0 | 6 votes |
public static synchronized byte[] serialize(ServiceRecord record) { DataElement seq = new DataElement(DataElement.DATSEQ); int[] attrIDs = record.getAttributeIDs(); for (int i = 0; i < attrIDs.length; i++) { DataElement attrID = new DataElement(DataElement.U_INT_2, attrIDs[i]); DataElement attrValue = record.getAttributeValue(attrIDs[i]); if (attrValue != null) { seq.addElement(attrID); seq.addElement(attrValue); } } try { return des.serialize(seq); } catch (IOException e) { return null; } }
Example 2
Source File: ClientServiceSearchAttributeTransaction.java From pluotsorbet with GNU General Public License v2.0 | 6 votes |
public ClientServiceSearchAttributeTransaction(JavaSDPClient client, int transactionID, SDPResponseListener listener, int[] attrSet, UUID[] uuidSet) { super(client, SDPClientTransaction.SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST, transactionID, listener); attrData = new DataElement(DataElement.DATSEQ); uuidData = new DataElement(DataElement.DATSEQ); for (int i = 0; i < attrSet.length; i++) { attrData.addElement(new DataElement(DataElement.U_INT_2, attrSet[i])); } for (int i = 0; i < uuidSet.length; i++) { uuidData.addElement(new DataElement(DataElement.UUID, uuidSet[i])); } parameterLength = super.client.getConnection().getReaderWriter().getDataSize(attrData) + super.client.getConnection().getReaderWriter().getDataSize(uuidData) + 2; }
Example 3
Source File: BTServiceDiscoveryListener.java From jolie with GNU Lesser General Public License v2.1 | 5 votes |
public void servicesDiscovered( int transID, ServiceRecord[] serviceRecords ) { DataElement e; ServiceRecord r; Enumeration< DataElement > en; boolean keepRun = true; for( int i = 0; i < serviceRecords.length && keepRun; i++ ) { r = serviceRecords[ i ]; // Search for the desired UUID if( (e = r.getAttributeValue( 0x0001 )) != null ) { if( e.getDataType() == DataElement.DATSEQ ) { en = (Enumeration< DataElement >) e.getValue(); Object o; while( en.hasMoreElements() ) { o = en.nextElement().getValue(); if( o instanceof UUID ) { if( o.equals( uuid ) ) { serviceRecord = r; keepRun = false; } } } } else if( e.getDataType() == DataElement.UUID ) { if( e.getValue().equals( uuid ) ) { serviceRecord = r; keepRun = false; } } } } }
Example 4
Source File: ServiceRecordImpl.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
private DataElement dataElementCopy(DataElement original) { if ((original.getDataType() == DataElement.DATSEQ) || (original.getDataType() == DataElement.DATALT)) { DataElement copy = new DataElement(original.getDataType()); Enumeration elements = (Enumeration) original.getValue(); while (elements.hasMoreElements()) { copy.addElement(dataElementCopy((DataElement) elements.nextElement())); } return copy; } else { return original; } }
Example 5
Source File: ServiceRecordImpl.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
private void retrieveUrlCommonParams() { if (protocol != BluetoothUrl.UNKNOWN) { // already retrieved return; } if (remoteDevice != null) { btaddr = remoteDevice.getBluetoothAddress(); } else { try { btaddr = LocalDevice.getLocalDevice().getBluetoothAddress(); } catch (BluetoothStateException bse) { throw new IllegalArgumentException("cannot generate url"); } } /* * There are three protocols supported - * they are obex or rfcomm or l2cap. So, if obex is * found in ProtocolDescriptorList, the protocol is btgoep, * if RFCOMM is found (and no obex) - the btspp, otherwise * the protocol is btl2cap. */ DataElement protocolList = getAttributeValue(PROTOCOL_DESCRIPTOR_LIST); if (protocolList == null) { return; } Enumeration val = (Enumeration) protocolList.getValue(); int type = -1; // 0 = l2cap, 1 = spp, 2 = obex final UUID L2CAP_UUID = new UUID(0x0100); final UUID RFCOMM_UUID = new UUID(0x0003); final UUID OBEX_UUID = new UUID(0x0008); // go through all of the protocols in the protocols list while (val.hasMoreElements()) { DataElement protoDE = (DataElement) val.nextElement(); // application adds a garbage in protocolList - ignore if (protoDE.getDataType() != DataElement.DATSEQ) { continue; } Enumeration protoEnum = (Enumeration) protoDE.getValue(); int tmpPort = -1; int tmpType = -1; // look on protocol details while (protoEnum.hasMoreElements()) { DataElement de = (DataElement) protoEnum.nextElement(); // may be PSM or channel id if (de.getDataType() == DataElement.U_INT_1 || de.getDataType() == DataElement.U_INT_2) { tmpPort = (int) de.getLong(); } else if (de.getDataType() == DataElement.UUID) { UUID protoUUID = (UUID) de.getValue(); if (protoUUID.equals(L2CAP_UUID)) { tmpType = 0; } else if (protoUUID.equals(RFCOMM_UUID)) { tmpType = 1; } else if (protoUUID.equals(OBEX_UUID)) { tmpType = 2; } } } /* * ok, new protocol has been parsed - let's check if it * is over the previous one or not. * * Note, that OBEX protocol may appear before the RFCOMM * one - in this case the port (channel id) is not set - * need to check this case separately. */ if (tmpType > type) { type = tmpType; // no "port" for obex type (obex = 2) if (tmpType != 2) { port = tmpPort; } } else if (tmpType == 1) { port = tmpPort; } } switch (type) { case 0: protocol = BluetoothUrl.L2CAP; break; case 1: protocol = BluetoothUrl.RFCOMM; break; case 2: protocol = BluetoothUrl.OBEX; break; default: throw new IllegalArgumentException("wrong protocol list"); } }
Example 6
Source File: ClientServiceSearchTransaction.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
public ClientServiceSearchTransaction(JavaSDPClient client, int transactionID, SDPResponseListener listener, UUID[] uuidSet) { super(client, SDPClientTransaction.SDP_SERVICE_SEARCH_REQUEST, transactionID, listener); serviceSearchPattern = new DataElement(DataElement.DATSEQ); for (int i = 0; i < uuidSet.length; i++) { serviceSearchPattern.addElement(new DataElement( DataElement.UUID, uuidSet[i])); } parameterLength = super.des.getDataSize(serviceSearchPattern) + 2; }
Example 7
Source File: DataElementSerializer.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
public long getDataSize(DataElement data) { int type = data.getDataType(); long size = getPureDataSize(data); if ((type == DataElement.NULL) || (type == DataElement.BOOL) || (type == DataElement.INT_1) || (type == DataElement.U_INT_1) || (type == DataElement.INT_2) || (type == DataElement.U_INT_2) || (type == DataElement.INT_4) || (type == DataElement.U_INT_4) || (type == DataElement.INT_8) || (type == DataElement.U_INT_8) || (type == DataElement.INT_16) || (type == DataElement.U_INT_16) || (type == DataElement.UUID)) { return size + 1; } else if ((type == DataElement.DATSEQ) || (type == DataElement.DATALT) || (type == DataElement.STRING) || (type == DataElement.URL)) { if (size <= 0xffL) { return size + 2; } else if (size <= 0xffffL) { return size + 3; } else if (size <= 0xffffffffL) { return size + 5; } else { throw new RuntimeException("Data size is too large."); } } else { throw new RuntimeException("Unexpected data type."); } }
Example 8
Source File: DataElementSerializer.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
public long getPureDataSize(DataElement data) { switch (data.getDataType()) { case DataElement.NULL: return 0; case DataElement.BOOL: case DataElement.INT_1: case DataElement.U_INT_1: return 1; case DataElement.INT_2: case DataElement.U_INT_2: return 2; case DataElement.INT_4: case DataElement.U_INT_4: return 4; case DataElement.INT_8: case DataElement.U_INT_8: return 8; case DataElement.INT_16: case DataElement.U_INT_16: return 16; case DataElement.DATSEQ: case DataElement.DATALT: long size = 0; Enumeration elements = (Enumeration)data.getValue(); while (elements.hasMoreElements()) { size += getDataSize((DataElement)elements.nextElement()); } return size; case DataElement.STRING: case DataElement.URL: return ((String)data.getValue()).length(); case DataElement.UUID: return 16; default: throw new RuntimeException("Unknown data type."); } }
Example 9
Source File: ClientServiceAttributeTransaction.java From pluotsorbet with GNU General Public License v2.0 | 5 votes |
ClientServiceAttributeTransaction(JavaSDPClient client, int transactionID, SDPResponseListener listener, int recordHandle, int[] attrSet) { super(client, SDPClientTransaction.SDP_SERVICE_ATTRIBUTE_REQUEST, transactionID, listener); serviceRecordHandle = recordHandle; attributeIDList = new DataElement(DataElement.DATSEQ); for (int i = 0; i < attrSet.length; i++) { attributeIDList.addElement(new DataElement( DataElement.U_INT_2, attrSet[i])); } parameterLength = super.client.getConnection().getReaderWriter().getDataSize(attributeIDList) + 6; }