00001 using System;
00002 using System.Collections.Generic;
00003 using System.Linq;
00004 using System.Text;
00005
00006 namespace RS232Port {
00007 class Format {
00008 enum format {
00009 ASCII,
00010 HEX,
00011 DEC,
00012 BIN,
00013 }
00014
00015 format inputFormat;
00016 format outputFormat;
00017
00018 public string convert(string data, string format1, string format2) {
00019 switch (format1) {
00020 case "ASCII":
00021 inputFormat = format.ASCII;
00022 break;
00023 case "HEX":
00024 inputFormat = format.HEX;
00025 break;
00026 case "DEC":
00027 inputFormat = format.DEC;
00028 break;
00029 case "BIN":
00030 inputFormat = format.BIN;
00031 break;
00032 default:
00033 break;
00034 }
00035 switch (format2) {
00036 case "ASCII":
00037 outputFormat = format.ASCII;
00038 break;
00039 case "HEX":
00040 outputFormat = format.HEX;
00041 break;
00042 case "DEC":
00043 outputFormat = format.DEC;
00044 break;
00045 case "BIN":
00046 outputFormat = format.BIN;
00047 break;
00048 default:
00049 break;
00050 }
00051 if (inputFormat == format.ASCII && outputFormat == format.ASCII) {
00052 ASCIIToASCII(ref data);
00053 } else if (inputFormat == format.ASCII && outputFormat == format.HEX) {
00054
00055 } else if (inputFormat == format.ASCII && outputFormat == format.DEC) {
00056
00057 } else if (inputFormat == format.ASCII && outputFormat == format.BIN) {
00058
00059 } else if (inputFormat == format.HEX && outputFormat == format.ASCII) {
00060
00061 } else if (inputFormat == format.HEX && outputFormat == format.HEX) {
00062
00063 } else if (inputFormat == format.HEX && outputFormat == format.DEC) {
00064
00065 } else if (inputFormat == format.HEX && outputFormat == format.BIN) {
00066
00067 } else if (inputFormat == format.DEC && outputFormat == format.ASCII) {
00068
00069 } else if (inputFormat == format.DEC && outputFormat == format.HEX) {
00070
00071 } else if (inputFormat == format.DEC && outputFormat == format.DEC) {
00072
00073 } else if (inputFormat == format.DEC && outputFormat == format.BIN) {
00074
00075 } else if (inputFormat == format.BIN && outputFormat == format.ASCII) {
00076
00077 } else if (inputFormat == format.BIN && outputFormat == format.HEX) {
00078
00079 } else if (inputFormat == format.BIN && outputFormat == format.DEC) {
00080
00081 } else if (inputFormat == format.BIN && outputFormat == format.BIN) {
00082
00083 } else {
00084 data = "Could not format data.";
00085 }
00086
00087 return data;
00088 }
00089
00090 private void ASCIIToASCII(ref string data) {
00091
00092 foreach (char c in data) {
00093 if (((int)c) > 128)
00094 data = "Cannot Parse";
00095 }
00096 }
00097
00098 }
00099 }