У меня есть страница ASP.Net для операций входа / регистрации. Что я пытаюсь сделать, так это показать имя пользователя на ЖК-дисплее, когда пользователь входит в систему. Я использую оборудование, которое я использую, это ЖК-экран клавиатуры, а не просто ЖК-дисплей, если это важно. И прекрасный Arduino UNO.
Сторона C #
Я попытался сохранить имя пользователя в массиве символов и отправить его в arduino один за другим, но Serial.Write () выдает ошибку, если я не передаю ему строку. Тогда я хотел отправить сразу все имя, но Serial.Read (), похоже, читает по одному.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.IO.Ports;
using System.Text;
using System.ComponentModel;
using System.Windows;
namespace EComm
{
public partial class Login : System.Web.UI.Page
{
SerialPort sp;
protected void Page_Load(object sender, EventArgs e)
{
sp = new SerialPort();
sp.PortName = "COM13";
sp.BaudRate = 9600;
txtPass.TextMode = TextBoxMode.Password;
}
protected void Button1_Click(object sender, EventArgs e)
{
DBDataContext db = new DBDataContext();
db.Connection.Open();
var users = from allusers in db.Users select allusers;
foreach (User _user in users)
{
if (txtUser.Text == _user.UserName.Trim())
if (txtPass.Text == _user.UserPassword.Trim())
{
Session["User"] = _user.UserName;
String outgoing = Session["User"].ToString();
for (int i = 0; i < outgoing.Length; i++)
{
sp.Open();
sp.Write(outgoing[i].ToString());
sp.Close();
}
Response.Redirect("Default.aspx");
}
}
}
Сторона Arduino
#include <LiquidCrystal.h>
char usrName[10];
char incomingChar;
byte index=0;
LiquidCrystal lcd(4,5,6,7,8,9);
int baud = 9600;
int x=0;
int y=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(x,y);
Serial.begin(baud);
}
void loop()
{
while(Serial.available()>0){
if(index<10){
y=1;
incomingChar=Serial.read();
usrName[index]=incomingChar;
lcd.setCursor(x,y);
lcd.print(usrName[index]);
index++;
x++;
}
}
}
Оба кода не выдают ошибок или предупреждений. Когда я загружаю программу в Arduino и запускаю страницу входа в систему, я успешно перенаправляюсь на указанную страницу, но на ЖК-дисплее ничего не отображается.
Собственно это то, что я вижу после входа на сайт. Понятия не имею, почему там белые клетки, они просто появляются, когда я подключаю плату. Но когда я загружаю пример программы для защиты клавиатуры, эти ячейки просто становятся нормальными.
outgoing[i].ToString()
не пуст и что он действительно принимается на стороне Arduino. Если это так, у вас проблема с тем, как вы взаимодействуете с ЖК-дисплеем, или проблема с оборудованием. - person Stian Sandve   schedule 09.07.2015outgoing
, я вижу, что имя пользователя введено в текстовое поле, но когда я проверяюoutgoing.[i].ToString()
, я все еще вижу полное имя пользователя. Разве это не должно быть его первой буквой? - person ardatosun   schedule 09.07.2015