using System; using System.Collections.Generic; using System.Linq; namespace WebMrbc { public static class GrSakura { public static FieldDropdown Pins() { return new FieldDropdown(new[] { new[] { "IO0", "PIN_IO0" }, new[] { "IO1", "PIN_IO1" }, new[] { "IO2", "PIN_IO2" }, new[] { "IO3", "PIN_IO3" }, new[] { "IO4", "PIN_IO4" }, new[] { "IO5", "PIN_IO5" }, new[] { "IO6", "PIN_IO6" }, new[] { "IO7", "PIN_IO7" }, // IO pins, header CN7. new[] { "IO8", "PIN_IO8" }, new[] { "IO9", "PIN_IO9" }, new[] { "IO10", "PIN_IO10" }, new[] { "IO11", "PIN_IO11" }, new[] { "IO12", "PIN_IO12" }, new[] { "IO13", "PIN_IO13" }, // IO pins, header CN7. new[] { "IO14", "PIN_IO14" }, new[] { "IO15", "PIN_IO15" }, new[] { "IO16", "PIN_IO16" }, new[] { "IO17", "PIN_IO17" }, new[] { "IO18", "PIN_IO18" }, new[] { "IO19", "PIN_IO19" }, new[] { "IO20", "PIN_IO20" }, new[] { "IO21", "PIN_IO21" }, // IO pins, header CN9. new[] { "IO22", "PIN_IO22" }, new[] { "IO23", "PIN_IO23" }, new[] { "IO24", "PIN_IO24" }, new[] { "IO25", "PIN_IO25" }, new[] { "IO26", "PIN_IO26" }, new[] { "IO27", "PIN_IO27" }, new[] { "IO28", "PIN_IO28" }, new[] { "IO29", "PIN_IO29" }, // IO pins, header CN10. new[] { "IO30", "PIN_IO30" }, new[] { "IO31", "PIN_IO31" }, new[] { "IO32", "PIN_IO32" }, new[] { "IO33", "PIN_IO33" }, new[] { "IO34", "PIN_IO34" }, new[] { "IO35", "PIN_IO35" }, // IO pins, header CN12. new[] { "IO36", "PIN_IO36" }, new[] { "IO37", "PIN_IO37" }, new[] { "IO38", "PIN_IO38" }, new[] { "IO39", "PIN_IO39" }, new[] { "IO40", "PIN_IO40" }, new[] { "IO41", "PIN_IO41" }, new[] { "IO42", "PIN_IO42" }, new[] { "IO43", "PIN_IO43" }, // IO pins, header CN11. new[] { "IO44", "PIN_IO44" }, new[] { "IO45", "PIN_IO45" }, new[] { "IO46", "PIN_IO46" }, new[] { "IO47", "PIN_IO47" }, new[] { "IO48", "PIN_IO48" }, new[] { "IO49", "PIN_IO49" }, new[] { "IO50", "PIN_IO50" }, new[] { "IO51", "PIN_IO51" }, // IO pins, header CN13. new[] { "IO52", "PIN_IO52" }, new[] { "IO53", "PIN_IO53" }, new[] { "IO54", "PIN_IO54" }, new[] { "IO55", "PIN_IO55" }, // IO pins, header CN6. new[] { "IO56", "PIN_IO56" }, new[] { "IO57", "PIN_IO57" }, new[] { "IO58", "PIN_IO58" }, new[] { "IO59", "PIN_IO59" }, new[] { "IO60", "PIN_IO60" }, // LEDs (D1-D4) and SW. new[] { "LED0", "PIN_LED0" }, new[] { "LED1", "PIN_LED1" }, new[] { "LED2", "PIN_LED2" }, new[] { "LED3", "PIN_LED3" }, new[] { "SW", "PIN_SW" }, }); } public static FieldDropdown AnalogPins() { return new FieldDropdown(new[] { // Analog pins, header CN15. new[] { "AN000", "PIN_AN000" }, new[] { "AN001", "PIN_AN001" }, new[] { "AN002", "PIN_AN002" }, new[] { "AN003", "PIN_AN003" }, new[] { "AN004", "PIN_AN004" }, new[] { "AN005", "PIN_AN005" }, // Analog pins, header CN13. new[] { "AN006", "PIN_AN006" }, new[] { "AN007", "PIN_AN007" }, // Analog pins, header CN12. new[] { "AN008", "PIN_AN008" }, new[] { "AN009", "PIN_AN009" }, new[] { "AN010", "PIN_AN010" }, new[] { "AN011", "PIN_AN011" }, new[] { "AN012", "PIN_AN012" }, new[] { "AN013", "PIN_AN013" }, // Analog input, RX63N internal new[] { "ANINT", "PIN_ANINT" }, new[] { "ANTMP", "PIN_ANTMP" }, }); } public static FieldDropdown PwmPins() { return new FieldDropdown(new[] { new[] { "IO0", "PIN_IO0" }, new[] { "IO1", "PIN_IO1" }, new[] { "IO2", "PIN_IO2" }, new[] { "IO3", "PIN_IO3" }, new[] { "IO4", "PIN_IO4" }, new[] { "IO5", "PIN_IO5" }, new[] { "IO6", "PIN_IO6" }, new[] { "IO7", "PIN_IO7" }, new[] { "IO9", "PIN_IO9" }, new[] { "IO10", "PIN_IO10" }, }); } public static int PinNameToNum(string name) { switch (name) { case "PIN_IO0": return 0; case "PIN_IO1": return 1; case "PIN_IO2": return 2; case "PIN_IO3": return 3; case "PIN_IO4": return 4; case "PIN_IO5": return 5; case "PIN_IO6": return 6; case "PIN_IO7": return 7; case "PIN_IO8": return 8; case "PIN_IO9": return 9; case "PIN_IO10": return 10; case "PIN_IO11": return 11; case "PIN_IO12": return 12; case "PIN_IO13": return 13; case "PIN_IO14": return 14; case "PIN_IO15": return 15; case "PIN_IO16": return 16; case "PIN_IO17": return 17; case "PIN_IO18": return 18; case "PIN_IO19": return 19; case "PIN_IO20": return 20; case "PIN_IO21": return 21; case "PIN_IO22": return 22; case "PIN_IO23": return 23; case "PIN_IO24": return 24; case "PIN_IO25": return 25; case "PIN_IO26": return 26; case "PIN_IO27": return 27; case "PIN_IO28": return 28; case "PIN_IO29": return 29; case "PIN_IO30": return 30; case "PIN_IO31": return 31; case "PIN_IO32": return 32; case "PIN_IO33": return 33; case "PIN_IO34": return 34; case "PIN_IO35": return 35; case "PIN_IO36": return 36; case "PIN_IO37": return 37; case "PIN_IO38": return 38; case "PIN_IO39": return 39; case "PIN_IO40": return 40; case "PIN_IO41": return 41; case "PIN_IO42": return 42; case "PIN_IO43": return 43; case "PIN_IO44": return 44; case "PIN_IO45": return 45; case "PIN_IO46": return 46; case "PIN_IO47": return 47; case "PIN_IO48": return 48; case "PIN_IO49": return 49; case "PIN_IO50": return 50; case "PIN_IO51": return 51; case "PIN_IO52": return 52; case "PIN_IO53": return 53; case "PIN_IO54": return 54; case "PIN_IO55": return 55; case "PIN_IO56": return 56; case "PIN_IO57": return 57; case "PIN_IO58": return 58; case "PIN_IO59": return 59; case "PIN_IO60": return 60; case "PIN_LED0": return 61; case "PIN_LED1": return 62; case "PIN_LED2": return 63; case "PIN_LED3": return 64; case "PIN_SW": return 65; case "PIN_AN000": return 14; case "PIN_AN001": return 15; case "PIN_AN002": return 16; case "PIN_AN003": return 17; case "PIN_AN004": return 18; case "PIN_AN005": return 19; case "PIN_AN006": return 20; case "PIN_AN007": return 21; case "PIN_AN008": return 22; case "PIN_AN009": return 23; case "PIN_AN010": return 24; case "PIN_AN011": return 25; case "PIN_AN012": return 26; case "PIN_AN013": return 27; case "PIN_ANINT": return 28; case "PIN_ANTMP": return 29; default: return -1; } } public static int PinModeNameToNum(string name) { switch (name) { case "INPUT": return 0; case "OUTPUT": return 1; default: return -1; } } public static int PinValueNameToNum(string name) { switch (name) { case "LOW": return 0; case "HIGH": return 1; default: return -1; } } public static int AnalogRefModeNameToNum(string name) { switch (name) { case "DEFAULT": return 0; case "INTERNAL": return 1; case "EXTERNAL": return 2; case "RAW12BIT": return 3; default: return -1; } } public static FieldDropdown I2CPorts() { return new FieldDropdown(new[] { new[] { "SDA-0/SCL-1", "I2C0" }, new[] { "SDA-5/SCL-6", "I2C1" }, new[] { "SDA-7/SCL-8", "I2C2" }, new[] { "SDA-9(26)/SCL-3", "I2C3" } }); } public static string I2CPortNameToVariable(string name) { switch (name) { case "I2C0": return "$i2c0"; case "I2C1": return "$i2c1"; case "I2C2": return "$i2c2"; case "I2C3": return "$i2c3"; default: return name; } } public static int I2CPortNameToNum(string name) { switch (name) { case "I2C0": return 0; case "I2C1": return 1; case "I2C2": return 2; case "I2C3": return 3; default: return -1; } } public static FieldDropdown MemFileHandles() { return new FieldDropdown(new[] { new[] { "MemFile0", "MEM_FILE0" }, new[] { "MemFile1", "MEM_FILE1" } }); } public static int MemFileHandlerNameToNum(string name) { switch (name) { case "MEM_FILE0": return 0; case "MEM_FILE1": return 1; default: return -1; } } internal static int MemOpenModeNameToNum(string name) { switch (name) { case "EEP_READ": return 0; case "EEP_APPEND": return 1; case "EEP_WRITE": return 2; default: return -1; } } public static int MemCpModeNameToNum(string name) { switch (name) { case "NO_OVERWRITE": return 0; case "OVERWRITE": return 1; default: return -1; } } public static FieldDropdown SdFileHandles() { return new FieldDropdown(new[] { new[] { "SdFile0", "SD_FILE0" }, new[] { "SdFile1", "SD_FILE1" } }); } public static int SdFileHandlerNameToNum(string name) { switch (name) { case "SD_FILE0": return 0; case "SD_FILE1": return 1; default: return -1; } } public static int SdOpenModeNameToNum(string name) { switch (name) { case "READ": return 0; case "APPEND": return 1; case "NEW_CREATE": return 2; default: return -1; } } public static FieldDropdown SerialPorts() { return new FieldDropdown(new[] { new[] { "USB", "SERIAL0" }, new[] { "TX-0/RX-1", "SERIAL1" }, new[] { "TX-5/RX-6", "SERIAL2" }, new[] { "TX-7/RX-8", "SERIAL3" }, new[] { "TX-12/RX-11", "SERIAL4" }, new[] { "TX-9(26)/RX-3", "SERIAL5" } }); } public static int SerialPortNameToNum(string name) { switch (name) { case "SERIAL0": return 0; case "SERIAL1": return 1; case "SERIAL2": return 2; case "SERIAL3": return 3; case "SERIAL4": return 4; case "SERIAL5": return 5; default: return -1; } } public static string SerialPortNameToVariable(string name) { switch (name) { case "SERIAL0": return "$Serial"; case "SERIAL1": return "$Serial1"; case "SERIAL2": return "$Serial2"; case "SERIAL3": return "$Serial3"; case "SERIAL4": return "$Serial4"; case "SERIAL5": return "$Serial5"; default: return name; } } } }