/*******************************************************************************
* Copyright (c) 2011, 2016 Eurotech and/or its affiliates
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eurotech
*******************************************************************************/
package org.eclipse.kura.linux.net.modem;
import java.util.Arrays;
import java.util.List;
import org.eclipse.kura.linux.net.util.KuraConstants;
import org.eclipse.kura.net.modem.ModemTechnologyType;
public enum SupportedUsbModemInfo {
// device name, vendor, product, ttyDevs, blockDevs, AT Port, Data Port, GPS Port, technology types, device driver
Telit_HE910_DG("HE910-DG", "1bc7", "0021", 6, 0, 3, 0, 3,
Arrays.asList(ModemTechnologyType.HSPA, ModemTechnologyType.UMTS),
Arrays.asList(new UsbModemDriver("cdc_acm", "1bc7", "0021")), "6 CDC-ACM"), Telit_HE910_D("HE910-D", "1bc7",
"0021", 7, 0, 3, 0, 3, Arrays.asList(ModemTechnologyType.HSPA, ModemTechnologyType.UMTS),
Arrays.asList(new UsbModemDriver("cdc_acm", "1bc7", "0021")), ""), Telit_GE910("GE910", "1bc7",
"0022", 2, 0, 0, 1, 0, Arrays.asList(ModemTechnologyType.GSM_GPRS),
Arrays.asList(new UsbModemDriver("cdc_acm", "1bc7", "0022")),
""), Telit_DE910_DUAL("DE910-DUAL", "1bc7", "1010", 4, 0, 2, 3, 1,
Arrays.asList(ModemTechnologyType.EVDO, ModemTechnologyType.CDMA),
Arrays.asList(new De910ModemDriver()),
""), Telit_LE910("LE910", "1bc7", "1201", 5, 0, 2, 3, 1, Arrays.asList(
ModemTechnologyType.LTE, ModemTechnologyType.HSPA,
ModemTechnologyType.UMTS), Arrays.asList(new Le910ModemDriver()),
""), Telit_CE910_DUAL("CE910-DUAL", "1bc7", "1011", 2, 0, 1, 1, -1,
Arrays.asList(ModemTechnologyType.CDMA),
Arrays.asList(new Ce910ModemDriver()), ""), Sierra_MC8775("MC8775",
"1199", "6812", 3, 0, 2, 0, -1,
Arrays.asList(ModemTechnologyType.HSDPA),
Arrays.asList(new UsbModemDriver("sierra", "1199", "6812")),
""), Sierra_MC8790("MC8790", "1199", "683c", 7, 0, 3, 4, -1,
Arrays.asList(ModemTechnologyType.HSDPA),
Arrays.asList(new UsbModemDriver("sierra", "1199",
"683c")),
""), Sierra_USB598("USB598", "1199", "0025", 4, 1,
0, 0, -1,
Arrays.asList(ModemTechnologyType.EVDO),
Arrays.asList(new UsbModemDriver("sierra",
"1199", "0025")),
""), Ublox_SARA_U2("SARA-U2", "1546",
"1102", 7, 0, 1, 0, -1,
Arrays.asList(
ModemTechnologyType.HSPA),
Arrays.asList(new UsbModemDriver(
"cdc_acm", "1546", "1102")),
"");
private static final String TARGET_NAME = System.getProperty("target.device");
private String m_deviceName;
private String m_vendorId;
private String m_productId;
private int m_numTtyDevs;
private int m_numBlockDevs;
private int m_atPort;
private int m_dataPort;
private int m_gpsPort;
private List<ModemTechnologyType> m_technologyTypes;
private List<? extends UsbModemDriver> m_deviceDrivers;
private String m_productName;
private SupportedUsbModemInfo(String deviceName, String vendorId, String productId, int numTtyDevs,
int numBlockDevs, int atPort, int dataPort, int gpsPort, List<ModemTechnologyType> modemTechnology,
List<? extends UsbModemDriver> drivers, String prodName) {
this.m_deviceName = deviceName;
this.m_vendorId = vendorId;
this.m_productId = productId;
this.m_numTtyDevs = numTtyDevs;
this.m_numBlockDevs = numBlockDevs;
this.m_atPort = atPort;
this.m_dataPort = dataPort;
this.m_gpsPort = gpsPort;
this.m_technologyTypes = modemTechnology;
this.m_deviceDrivers = drivers;
this.m_productName = prodName;
}
public String getDeviceName() {
return this.m_deviceName;
}
public List<? extends UsbModemDriver> getDeviceDrivers() {
return this.m_deviceDrivers;
}
public String getVendorId() {
return this.m_vendorId;
}
public String getProductId() {
return this.m_productId;
}
public int getNumTtyDevs() {
int ret = this.m_numTtyDevs;
if (TARGET_NAME != null
&& (TARGET_NAME.equals(KuraConstants.ReliaGATE_15_10.getTargetName())
|| TARGET_NAME.equals(KuraConstants.ReliaGATE_50_21_Ubuntu.getTargetName()))
&& this.m_deviceName.equals(Telit_LE910.m_deviceName)) {
ret = this.m_numTtyDevs + 2;
}
return ret;
}
public int getNumBlockDevs() {
return this.m_numBlockDevs;
}
public int getAtPort() {
int ret = this.m_atPort;
if (TARGET_NAME != null
&& (TARGET_NAME.equals(KuraConstants.ReliaGATE_15_10.getTargetName())
|| TARGET_NAME.equals(KuraConstants.ReliaGATE_50_21_Ubuntu.getTargetName()))
&& this.m_deviceName.equals(Telit_LE910.m_deviceName)) {
ret = this.m_atPort + 2;
}
return ret;
}
public int getDataPort() {
int ret = this.m_dataPort;
if (TARGET_NAME != null
&& (TARGET_NAME.equals(KuraConstants.ReliaGATE_15_10.getTargetName())
|| TARGET_NAME.equals(KuraConstants.ReliaGATE_50_21_Ubuntu.getTargetName()))
&& this.m_deviceName.equals(Telit_LE910.m_deviceName)) {
ret = this.m_dataPort + 2;
}
return ret;
}
public int getGpsPort() {
int ret = this.m_gpsPort;
if (TARGET_NAME != null
&& (TARGET_NAME.equals(KuraConstants.ReliaGATE_15_10.getTargetName())
|| TARGET_NAME.equals(KuraConstants.ReliaGATE_50_21_Ubuntu.getTargetName()))
&& this.m_deviceName.equals(Telit_LE910.m_deviceName)) {
ret = this.m_gpsPort + 2;
}
return ret;
}
public List<ModemTechnologyType> getTechnologyTypes() {
return this.m_technologyTypes;
}
public String getProductName() {
return this.m_productName;
}
}