Добавить последовательный порт на веб-страницу - PullRequest
1 голос
/ 13 августа 2011

Можно ли добавить управление последовательным портом в веб-приложение.Я попытался создать один программно, но у меня есть проблемы с открытым портом.Я не уверен, как это исправить, кроме как добавить управление последовательным портом на веб-страницу.Любые идеи о том, как я могу выполнить эту задачу?Заранее спасибо.

Ниже приведен код, который у меня есть:

public partial class LoadCellTest : System.Web.UI.Page
{ 
SerialPort serialPort1 = new SerialPort("COM3",9600,Parity.None,8,StopBits.One);

 protected void Page_Load(object sender, EventArgs e)
{

    serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
    serialPort1.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort1_ErrorReceived);

}

delegate void SerialDataReceivedDelegate(object sender, SerialDataReceivedEventArgs e);
delegate void SerialErrorReceivedDelegate(object sender, SerialErrorReceivedEventArgs e);


protected void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
   TextBox1.Text = (serialPort1.ReadExisting());
   if (serialPort1.ReadExisting().Length == 0)
   {
       ListBox1.Items.Insert(0, TextBox1.Text);
       TextBox1.Text = "";
   }
}
protected void button1_Click(object sender, EventArgs e)
{
    try
    {
        if (serialPort1.IsOpen)
        {
            serialPort1.Close();
            button1.Text = "Start";
        }
        else
        {
            serialPort1.Open();
            button1.Text = "Stop";
        }
    }
    catch (IOException ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Ответы [ 2 ]

3 голосов
/ 13 августа 2011

Превращаю мои комментарии в ответ ...

Код последовательного порта - это код на стороне сервера. Вы не можете сделать это на клиенте с ASP.NET.

Создание элемента управления ActiveX или другого жирного клиента - это большая нагрузка, но просто не очень хорошая идея.

Я бы порекомендовал вам продолжить с приложением WinForms для кода, в котором вам нужен сканер, и добавить в него меню, позволяющее запустить отдельное веб-приложение ASP.NET для доступа к отчетам / данным.

Если вы хотите сделать его более «плавным» для пользователей, вы можете добавить форму с элементом управления WebBrowser, который загружает ваш сайт для доступа к отчетам / данным. Для них это будет просто «частью приложения».

ЭТО СКАЗАЛ, что в зависимости от устройства, которое вы подключили к порту, может быть даже более простой вариант.

Один из наших сканеров штрих-кода поставляется с программным обеспечением, которое просто берет данные штрих-кода при их сканировании и вставляет их в любой открытый документ, имеющий фокус. Если вы работаете в Блокноте, отсканированные данные вставляются в Блокнот. Если у вас открыто веб-приложение и курсор в текстовом поле, данные просто вставляются туда.

Это более простой вариант для реализации, НО это сложнее для пользователей, потому что, если они не являются техническими, они назовут вас интересующимися, почему штрих-код издает звуковой сигнал, но не заполняет текстовое поле. (Ответ будет «Потому что ваш курсор не находится в текстовом поле или форма не имеет фокуса»)

Итак, я возвращаюсь к рекомендации № 1.

3 голосов
/ 13 августа 2011

Ваш код просто обращается к последовательному порту сервера, так как он работает на сервере ...

Если вам действительно нужен доступ к последовательному порту на клиенте из веб-приложения, тогда вам потребуетсяиспользовать какую-то технологию, которая работает непосредственно на клиенте ... это может быть элемент управления ActiveX, встроенный в вашу веб-страницу ...

Я действительно не уверен, что приложение Silverlight, встроенное в вашу веб-страницу, могло бы достичь этого...

Помните, что это может быть проблемой безопасности на веб-странице!

...