Reader Gogogogo

This commit is contained in:
BlubbFish 2011-10-25 22:25:04 +00:00
parent 1b8f9132c3
commit 77ec113e0d
11 changed files with 138 additions and 41 deletions

7
Matomat/App.config Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="com_display" value="COM1" />
<add key="com_rfid" value="COM2" />
</appSettings>
</configuration>

View File

@ -2,14 +2,28 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.IO;
namespace Matomat namespace Matomat
{ {
class BarcodeReader class BarcodeReader
{ {
private TextReader r;
internal long getCodeID() internal long getCodeID()
{ {
return 4029764001807; r = Console.In;
string str = r.ReadLine();
try
{
return Convert.ToInt64(str);
}
catch (Exception) { }
return 0;
}
internal void Abort()
{
r.Close();
} }
} }
} }

58
Matomat/Config.cs Normal file
View File

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Configuration;
namespace Matomat
{
class Config
{
private class instance
{
public Config config;
public string signature;
public instance(Config config, string signature)
{
this.config = config;
this.signature = signature;
}
}
static List<instance> instances;
private AppSettingsReader config;
public Config()
{
this.config = new AppSettingsReader();
loadFile();
}
private void loadFile()
{
try
{
this.com_display = (string)config.GetValue("com_display", typeof(string));
this.com_rfid = (string)config.GetValue("com_rfid", typeof(string));
}
catch (Exception) { }
}
internal static Config getInstance(string file)
{
if (instances == null)
instances = new List<instance>();
foreach (instance i in instances)
{
if (i.signature == file)
return i.config;
}
instance instance = new instance(new Config(), file);
instances.Add(instance);
return instance.config;
}
public string com_display { get; set; }
public string com_rfid { get; set; }
}
}

View File

@ -9,6 +9,7 @@ namespace Matomat
{ {
static LCDDisplay lcd_i = null; static LCDDisplay lcd_i = null;
static Input inp_i = null; static Input inp_i = null;
static Config con_i = null;
internal static LCDDisplay getLCDDisplay() internal static LCDDisplay getLCDDisplay()
{ {
if (lcd_i == null) if (lcd_i == null)
@ -18,9 +19,7 @@ namespace Matomat
private static LCDDisplay _createLCDDisplay() private static LCDDisplay _createLCDDisplay()
{ {
LCDDisplay.Comport comport = new LCDDisplay.Comport("COM1",19200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); return LCDDisplay.getInstance(Factory.getConfig().com_display);
LCDDisplay lcd = LCDDisplay.getInstance(comport);
return lcd;
} }
internal static Input getInput() internal static Input getInput()
@ -32,8 +31,18 @@ namespace Matomat
private static Input _createInput() private static Input _createInput()
{ {
Input inp = Input.getInstance(); return Input.getInstance();
return inp; }
internal static Config getConfig()
{
if (con_i == null)
con_i = Factory._createConfig("App.config");
return con_i;
}
private static Config _createConfig(string file)
{
return Config.getInstance(file);
} }
} }
} }

View File

@ -11,10 +11,7 @@ namespace Matomat
{ {
class Helper class Helper
{ {
internal static string Serialize(LCDDisplay.Comport comport)
{
return comport.port + comport.bautrate.ToString() + comport.databits.ToString() + comport.parity.ToString() + comport.stopbits.ToString();
}
} }
public static class String public static class String
{ {

View File

@ -51,10 +51,10 @@ namespace Matomat
while (true) while (true)
{ {
Thread.Sleep(1); Thread.Sleep(1);
char k = 'k'; long id = rfid.getCardID();
if (k == 'r') if (id != 0)
{ {
data.id = rfid.getCardID(); data.id = id;
data.type = InputData.types.Card; data.type = InputData.types.Card;
} }
} }
@ -65,11 +65,10 @@ namespace Matomat
while (true) while (true)
{ {
Thread.Sleep(1); Thread.Sleep(1);
char k = Console.ReadKey(false).KeyChar; long id = code.getCodeID();
Console.WriteLine(); if (id != 0)
if (k == 'b')
{ {
data.id = code.getCodeID(); data.id = id;
data.type = InputData.types.Prod; data.type = InputData.types.Prod;
} }
} }
@ -92,6 +91,8 @@ namespace Matomat
} }
wtCard.Abort(); wtCard.Abort();
wtCode.Abort(); wtCode.Abort();
rfid.Abort();
code.Abort();
return data; return data;
} }
@ -109,6 +110,7 @@ namespace Matomat
Thread.Sleep(1); Thread.Sleep(1);
} }
wtCode.Abort(); wtCode.Abort();
code.Abort();
return data; return data;
} }

View File

@ -34,32 +34,15 @@ namespace Matomat
this.time = time; this.time = time;
} }
} }
public class Comport
{
public string port;
public int bautrate;
public Parity parity;
public int databits;
public StopBits stopbits;
public Comport(string port, int bautrate, Parity parity, int databits, StopBits stopbits)
{
this.port = port;
this.bautrate = bautrate;
this.parity = parity;
this.databits = databits;
this.stopbits = stopbits;
}
}
static List<instance> instances; static List<instance> instances;
private Queue<Message> messages; private Queue<Message> messages;
private volatile bool _shouldStop; private volatile bool _shouldStop;
private SerialPort serialPort; private SerialPort serialPort;
private bool disable = false; private bool disable = false;
public LCDDisplay(Comport port) public LCDDisplay(string port)
{ {
this.serialPort = new SerialPort(port.port, port.bautrate, port.parity, port.databits, port.stopbits); this.serialPort = new SerialPort(port, 19200, Parity.None, 8, StopBits.One);
try try
{ {
this.serialPort.Open(); this.serialPort.Open();
@ -148,6 +131,10 @@ namespace Matomat
private void createChars() private void createChars()
{ {
this.displayEscCode("GTO0@");
this.displayEscCode("UDC0GH_H_HG@");
this.displayEscCode("GTO2@");
this.displayEscCode("UDC0GH_H_HG@"); this.displayEscCode("UDC0GH_H_HG@");
} }
@ -192,17 +179,16 @@ namespace Matomat
this.anzeige(text, status, time); this.anzeige(text, status, time);
} }
internal static LCDDisplay getInstance(Comport port) internal static LCDDisplay getInstance(string port)
{ {
if (instances == null) if (instances == null)
instances = new List<instance>(); instances = new List<instance>();
string signature = Helper.Serialize(port);
foreach (instance i in instances) foreach (instance i in instances)
{ {
if (i.signature == signature) if (i.signature == port)
return i.lCDDisplay; return i.lCDDisplay;
} }
instance instance = new instance(new LCDDisplay(port),signature); instance instance = new instance(new LCDDisplay(port), port);
instances.Add(instance); instances.Add(instance);
return instance.lCDDisplay; return instance.lCDDisplay;
} }

View File

@ -49,6 +49,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Automat.cs" /> <Compile Include="Automat.cs" />
<Compile Include="BarcodeReader.cs" /> <Compile Include="BarcodeReader.cs" />
<Compile Include="Config.cs" />
<Compile Include="Factory.cs" /> <Compile Include="Factory.cs" />
<Compile Include="Helper.cs" /> <Compile Include="Helper.cs" />
<Compile Include="Input.cs" /> <Compile Include="Input.cs" />
@ -68,6 +69,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -38,6 +38,7 @@ namespace Matomat
"² Produkt wurde nich gefunden ²"+ "² Produkt wurde nich gefunden ²"+
"² EAN13: "+(this.GetProdId().ToString()+" unbekannt").PadRight(29,' ')+" ²"+ "² EAN13: "+(this.GetProdId().ToString()+" unbekannt").PadRight(29,' ')+" ²"+
"²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²", LCDDisplay.Status.Error, 5); "²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²", LCDDisplay.Status.Error, 5);
System.Threading.Thread.Sleep(4500);
return false; return false;
} }
return true; return true;

View File

@ -2,14 +2,33 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using RfidClass;
namespace Matomat namespace Matomat
{ {
class RFIDReader class RFIDReader
{ {
private RFIDReaderClass r;
public RFIDReader()
{
r = new RFIDReaderClass(Factory.getConfig().com_rfid);
}
internal long getCardID() internal long getCardID()
{ {
return 0xFFFFFFFF; try
{
return r.readKey();
}
catch (Exception) //e)
{
//Console.WriteLine(e);
}
return 0;
}
internal void Abort()
{
r.abort();
} }
} }
} }

Binary file not shown.