예제 #1
0
        private void buttonWakeupThSet_Click(object sender, EventArgs e)
        {
            UInt16 LastErrCode;
            UInt32 mg;

            try
            {
                mg = Convert.ToUInt32(textBoxWakeupThresholdValue.Text);
            }
            catch
            {
                MessageBox.Show("format error");
                return;
            }

            LastErrCode = GSensor_API.GSENSOR_SetWakeupThreshold(mg);
            if (LastErrCode == IMC_ERR_INVALID_ARGUMENT)
            {
                MessageBox.Show("Threshold over range [63,16000) mg");
                return;
            }
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to GSENSOR_GetWakeupThreshold " + LastErrCode.ToString("X4"));
                return;
            }
        }
예제 #2
0
        void GSensorGetAlarmData()
        {
            UInt16 LastErrCode;

            GSensor_API.IMC_GSENSOR_DATA data;

            while (true)
            {
                LastErrCode = GSensor_API.GSENSOR_GetAlarmData(out data);
                if (LastErrCode != IMC_ERR_NO_ERROR)
                {
                    return;
                }
                else
                {
                    EditGSensorXValue.Text = data.x_mg.ToString();
                    EditGSensorYValue.Text = data.y_mg.ToString();
                    EditGSensorZValue.Text = data.z_mg.ToString();


                    string[]     gsensor_item = { EditGSensorXValue.Text, EditGSensorYValue.Text, EditGSensorZValue.Text };
                    ListViewItem item         = new ListViewItem(gsensor_item);

                    if (listViewGsensorData.Items.Count >= max_display_message_count)
                    {
                        listViewGsensorData.Items.RemoveAt(listViewGsensorData.Items.Count - 1);
                    }
                    listViewGsensorData.Items.Insert(0, item);
                }
            }
        }
예제 #3
0
        private void GSensor_Load(object sender, EventArgs e)
        {
            UInt16 LastErrCode;

            // Get library version
            byte[] byLibVersion = new byte[GSensor_API.IMC_LIB_VERSION_SIZE];
            LastErrCode = GSensor_API.GSENSOR_GetLibVersion(byLibVersion);
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to get library version");
                return;
            }
            int nRealSize;

            StaticLibVersionValue.Text = ConvertByte2String(byLibVersion, byLibVersion.Length, out nRealSize);

            comboBoxGsensorResValue.Items.Add("+-2G");
            comboBoxGsensorResValue.Items.Add("+-4G");
            comboBoxGsensorResValue.Items.Add("+-8G");
            comboBoxGsensorResValue.Items.Add("+-16G");
            comboBoxGsensorResValue.SelectedIndex = 0;

            listViewGsensorData.Columns.Add("X", 50, HorizontalAlignment.Left);
            listViewGsensorData.Columns.Add("Y", 50, HorizontalAlignment.Left);
            listViewGsensorData.Columns.Add("Z", 50, HorizontalAlignment.Left);

            GSensorAlarmEvent = System_API.CreateEvent((IntPtr)null, false, false, null);

            GSensorThreadActive      = true;
            GSensorAlarmHandleThread = new Thread(GSensorAlarmProcess);
            GSensorAlarmHandleThread.IsBackground = true;
            GSensorAlarmHandleThread.Start();
        }
예제 #4
0
        private void buttonGsensorResSet_Click(object sender, EventArgs e)
        {
            UInt16 LastErrCode;

            GSensor_API.IMC_GSENSOR_RES res = (GSensor_API.IMC_GSENSOR_RES)(comboBoxGsensorResValue.SelectedIndex);
            LastErrCode = GSensor_API.GSENSOR_SetResolution(res);
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to GSENSOR_SetResolution " + LastErrCode.ToString("X4"));
                return;
            }
        }
예제 #5
0
        private void buttonWakeupThGet_Click(object sender, EventArgs e)
        {
            UInt16 LastErrCode;

            UInt32 mg;

            LastErrCode = GSensor_API.GSENSOR_GetWakeupThreshold(out mg);
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to GSENSOR_GetWakeupThreshold " + LastErrCode.ToString("X4"));
                return;
            }

            textBoxWakeupThresholdValue.Text = mg.ToString();
        }
예제 #6
0
        private void TkBarGSensorStatus_ValueChanged(object sender, EventArgs e)
        {
            UInt16 LastErrCode;

            if (TkBarGSensorStatus.Value == 1)
            {
                LastErrCode = GSensor_API.GSENSOR_Initialize(GSensor_PORT_NUMBER);
                if (LastErrCode != IMC_ERR_NO_ERROR)
                {
                    MessageBox.Show("Fails to init SDK " + LastErrCode.ToString("X4"));
                    return;
                }

                GSensorGetValueTimer.Interval = 500;
                GSensorGetValueTimer.Enabled  = true;
                checkBoxAlarmActive.Enabled   = true;

                unsafe
                {
                    fixed(void *pEvent = &GSensorAlarmEvent)
                    {
                        if ((LastErrCode = GSensor_API.GSENSOR_SetAlarmEvent(pEvent)) != IMC_ERR_NO_ERROR)
                        {
                            MessageBox.Show("Fails to GSENSOR_SetAlarmEvent " + LastErrCode.ToString("X4"));
                            Environment.Exit(-1);
                        }
                    }
                }
            }
            else
            {
                GSensorGetValueTimer.Enabled = false;
                checkBoxAlarmActive.Enabled  = false;

                LastErrCode = GSensor_API.GSENSOR_Deinitialize();
                if (LastErrCode != IMC_ERR_NO_ERROR)
                {
                    MessageBox.Show("Fails to De-init SDK");
                    return;
                }
            }
        }
예제 #7
0
        private void checkBoxAlarmActive_CheckedChanged(object sender, EventArgs e)
        {
            UInt16 LastErrCode;

            if (checkBoxAlarmActive.Checked)
            {
                LastErrCode        = GSensor_API.GSENSOR_AlarmEnabled(1);
                GSensorAlarmActive = true;
            }
            else
            {
                GSensorAlarmActive = false;
                LastErrCode        = GSensor_API.GSENSOR_AlarmEnabled(0);
            }
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to GSENSOR_AlarmEnabled " + LastErrCode.ToString("X4"));
                return;
            }
        }
예제 #8
0
        private void GSensorGetValueTimer_Tick(object sender, EventArgs e)
        {
            if (GSensorAlarmActive)
            {
                return;
            }

            UInt16 LastErrCode;

            GSensor_API.IMC_GSENSOR_DATA data;
            LastErrCode = GSensor_API.GSENSOR_GetData(out data);
            if (LastErrCode != IMC_ERR_NO_ERROR)
            {
                MessageBox.Show("Fails to get value " + LastErrCode.ToString("X4"));
                return;
            }
            else
            {
                EditGSensorXValue.Text = data.x_mg.ToString();
                EditGSensorYValue.Text = data.y_mg.ToString();
                EditGSensorZValue.Text = data.z_mg.ToString();
            }
        }