Skip to content

Using Win32 API to control UART for reading battery state. It can show battery capacity, current, votage.

Notifications You must be signed in to change notification settings

testtestProblem/checkBatteryState

Repository files navigation

checkBatteryState

Using Win32 API to control UART for reading battery state. It can show battery capacity, current, votage.

UI

Capture

Open com port

My_SerialPort = new SerialPort();

if (My_SerialPort.IsOpen)
{
    CloseComport();
}

//config Serial Port
My_SerialPort.PortName = comboBox_comPortSelecter.Text;
My_SerialPort.BaudRate = 9600;
My_SerialPort.DataBits = 8;
My_SerialPort.StopBits = StopBits.One;

if (!My_SerialPort.IsOpen)
{
    int error = 0;

    //open Serial Port
    try
    {
        My_SerialPort.Open();
    }
    catch (Exception ex)
    {
        error = 1;
        MessageBox.Show(ex.Message);
    }           
    if (error == 0)
    {
      Console_receiving = true;

        sendData = new Thread(DoSend);
        sendData.IsBackground = true;
        sendData.Start();

        receiveData = new Thread(DoReceive);
        receiveData.IsBackground = true;
        receiveData.Start();
	}
}
else
{
    MessageBox.Show("Serial port has been opened.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Receive data

private void DoReceive()
        {
            Byte[] buffer = new Byte[32];
            try
            {
                while (Console_receiving)
                {
                    if (My_SerialPort.BytesToRead > 0)
                    {
                        Int32 length = My_SerialPort.Read(buffer, 0, buffer.Length);
                        Array.Resize(ref buffer, length);

.......

Write data

public void serialWrite(byte a, byte b, byte c, byte d)
        {
            try
            {
                Byte[] buffer = new Byte[4] { a, b, c, d };     //BIOS name
                My_SerialPort.Write(buffer, 0, buffer.Length);
            }
            catch (Exception ex)
            {
                CloseComport();
                MessageBox.Show(ex.Message);
            }
        }
void DoSend()
        {
            while (true)
            {
                switch (getDataType)
                {
                    case 100:     //get BIOS BOM and BIOS name
                        lable_biosBom.Text = "";
                        getDataType = 0;                            //parse method
                        serialWrite(0x04, 0xA0, 0x00, 0x5c);        //BIOS BOM
                        Thread.Sleep(750);                          //wait for receive data
..............

About

Using Win32 API to control UART for reading battery state. It can show battery capacity, current, votage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages