Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Honeywell Microswitch (Limit Switch) (http://www.chiefdelphi.com/forums/showthread.php?t=103041)

dmitch 16-02-2012 22:18

Honeywell Microswitch (Limit Switch)
 
I need to know how to program the microswitch so that when the lever is pushed down the light on the top pane of the drver station application lights up or somehow signals that the lever has been pressed.

DavisC 17-02-2012 17:37

Re: Honeywell Microswitch (Limit Switch)
 
+1 for that. I want to know that too!
(while somewhat [not really] on the topic, we need a +1 button for when we want to know the answer too...)

mikets 17-02-2012 17:55

Re: Honeywell Microswitch (Limit Switch)
 
It used to be that a couple years ago, there was sample code provided by FIRST that allowed you to send all your digital I/O, analog input data etc to the dashboard (DashboardDataFormat::SendIOPortData()). After kickoff this year, I briefly played with the code from two years ago and it did not work. I did not have time to figure out why. It is probably because the Dashboard data format has changed and we need an update to that sample code. You may look at it along that line.

However, there are many ways to feed the information back to the driver station. One of the possibilities is the DriverStationLCD class. If you are interested in that, I can explain how to use it.

dmitch 18-02-2012 10:19

Re: Honeywell Microswitch (Limit Switch)
 
I would appreciate if you could explain the DriverStation LCD class. We're using the switch for if the ball is at the correct position to shoot, so a simple output like "Ready for Shot" or something along those lines would really help. Thanks!

mikets 18-02-2012 13:54

Re: Honeywell Microswitch (Limit Switch)
 
Quote:

Originally Posted by dmitch (Post 1129441)
I would appreciate if you could explain the DriverStation LCD class. We're using the switch for if the ball is at the correct position to shoot, so a simple output like "Ready for Shot" or something along those lines would really help. Thanks!

You can paste the following macros into your file and use them. Note that these set of macros make life easier but the double paranthesis on LCDUpdate is required to make the macro work. You only need to call LCDUpdate once per loop. It refreshes the message display on the Driver Station. In other words, you can call LCDPrintf on several things, one per LCD line and then call LCDUpdate once to "deliver" the lines to the driver station.
Code:

#define LCD_LINE1              DriverStationLCD::kUser_Line1
#define LCD_LINE2              DriverStationLCD::kUser_Line2
#define LCD_LINE3              DriverStationLCD::kUser_Line3
#define LCD_LINE4              DriverStationLCD::kUser_Line4
#define LCD_LINE5              DriverStationLCD::kUser_Line5
#define LCD_LINE6              DriverStationLCD::kUser_Line6
#define LCDPrintf(p)            DriverStationLCD::GetInstance()->PrintfLine p
#define LCDUpdate()            DriverStationLCD::UpdateLCD()
 
class MyRobot: public SimpleRobot
{
   
public:
    MyRobot()
    {
    }
 
    ~MyRobot()
    {
    }
 
    void Autonomous(void)
    {
    }
 
    void OperatorControl(void)
    {
        while (IsEnabled() && IsOperatorControl())
        {
            LCDPrintf((LCD_LINE1, "ReadyToFire = %d", m_switchState));
            ....
            LCDUpate();
        }
    }
};



All times are GMT -5. The time now is 17:41.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi