All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.geotab.model.entity.textmessage.MimeContent Maven / Gradle / Ivy

package com.geotab.model.entity.textmessage;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.geotab.model.serialization.serdes.ByteArrayDeserializer;
import com.geotab.model.serialization.serdes.ByteArraySerializer;
import java.time.Duration;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * The contents of a {@link TextMessage} containing data to give to a IOX Add-On over an RS232. It holds more data than
 * SerialIoxContent and is not compatible with all Add-Ons. For more information regarding Add-On compatible please
 * contact your reseller.
 *
 * 

MimeContent is converted into bytes with a specific format. The first byte is the length of * the MimeType (N). The next N bytes are the ASCII encoded bytes of the MimeType string. The next two bytes are the * length of the Data (L). Finally, the next L bytes are the Data. Messages from MyGeotab will be delivered in this * format and messages to MyGeotab must be in this format as well. */ @Getter @Setter @NoArgsConstructor public class MimeContent extends TextMessageContentType { /** * Gets or sets the media type of content contained in the data field. Free string, Maximum 255 characters. */ private String mimeType; /** * The raw bytes to either send to an Add-On or that were received from an Add-On. Maximum 32767 bytes can be sent in * a single message. */ @JsonDeserialize(using = ByteArrayDeserializer.class) @JsonSerialize(using = ByteArraySerializer.class) private Byte[] data; /** * The channel number to send to an Add-On or that were received from an Add-On. */ private Integer channelNumber; /** * The delay to use between sending binary data packets to the GO Device. */ @Deprecated private Duration binaryDataPacketDelay; /** * The component type. */ private Integer componentType; @Builder(builderMethodName = "mimeContentBuilder") public MimeContent(String mimeType, Byte[] data, Integer channelNumber, Integer componentType) { super(MessageContentType.MIME_CONTENT); this.mimeType = mimeType; this.data = data; this.channelNumber = channelNumber; this.componentType = componentType; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy