summaryrefslogtreecommitdiffstats
path: root/src/electronics/components/piccomponentpin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/electronics/components/piccomponentpin.h')
-rw-r--r--src/electronics/components/piccomponentpin.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/electronics/components/piccomponentpin.h b/src/electronics/components/piccomponentpin.h
new file mode 100644
index 0000000..0fc433d
--- /dev/null
+++ b/src/electronics/components/piccomponentpin.h
@@ -0,0 +1,68 @@
+/***************************************************************************
+ * Copyright (C) 2005 by David Saxton *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef PICCOMPONENTPIN_H
+#define PICCOMPONENTPIN_H
+
+#include "config.h"
+#ifndef NO_GPSIM
+
+#include "logic.h"
+#include "gpsim/stimuli.h"
+
+#include <qstring.h>
+
+/**
+@short Controls a pin on the PIC component
+@author David Saxton
+ */
+class PICComponentPin : public CallbackClass, public stimulus
+{
+ public:
+ PICComponentPin( PICComponent * picComponent, PicPin picPin );
+ ~PICComponentPin();
+ /**
+ * Attach this to gpsim
+ */
+ void attach( IOPIN * iopin );
+ /**
+ * Called when the IOPIN this class is associated with changes state.
+ * Updates the associated LogicOut / LogicIn / etc according to what
+ * type of pin this is.
+ */
+ virtual void set_nodeVoltage( double v );
+ /**
+ * Called from our logic pin when the logic changes state.
+ */
+ void logicCallback( bool state );
+ /**
+ * Sets the output (if has one) to low. Called when the user stops the
+ * PIC.
+ */
+ void resetOutput();
+
+ virtual double get_Vth();
+
+ protected:
+ // Conductance of pin in different configurations
+ double m_gOutHigh;
+ double m_gOutLow;
+
+ PicPin m_picPin;
+ IOPIN * m_pIOPIN;
+ LogicOut * m_pLogicOut;
+ LogicIn * m_pLogicIn;
+ PICComponent * m_pPICComponent;
+ Stimulus_Node * m_pStimulusNode;
+ const QString m_id;
+};
+
+#endif
+#endif