This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
reprapfirmware-dc42/Reprap.h
David Crocker 3053359b30 Post-merge fixes
Fixed M122 so that diagnostics are sent to the web interface as well as
USB
Fixed M220 command to respond to speed change requests faster
Count the number of active extruders and heaters, and only send their
values to the web interface, subject to a minimum of 2 heaters and 1
extruder
2014-07-06 23:06:49 +01:00

108 lines
2.8 KiB
C++

/****************************************************************************************************
RepRapFirmware - Reprap
RepRap is a simple class that acts as a container for an instance of all the others.
-----------------------------------------------------------------------------------------------------
Version 0.1
21 May 2013
Adrian Bowyer
RepRap Professional Ltd
http://reprappro.com
Licence: GPL
****************************************************************************************************/
#ifndef REPRAP_H
#define REPRAP_H
class RepRap
{
public:
RepRap();
void EmergencyStop();
void Init();
void Spin();
void Exit();
void Interrupt();
void Diagnostics();
void Timing();
bool Debug() const;
void SetDebug(bool d);
void AddTool(Tool* t);
void SelectTool(int toolNumber);
void StandbyTool(int toolNumber);
Tool* GetCurrentTool();
Tool* GetTool(int toolNumber);
void SetToolVariables(int toolNumber, float* standbyTemperatures, float* activeTemperatures);
Platform* GetPlatform() const;
Move* GetMove() const;
Heat* GetHeat() const;
GCodes* GetGCodes() const;
Network* GetNetwork() const;
Webserver* GetWebserver() const;
void Tick();
bool IsStopped() const;
uint16_t GetTicksInSpinState() const;
uint16_t GetExtrudersInUse() const;
uint16_t GetHeatersInUse() const;
private:
Platform* platform;
Network* network;
Move* move;
Heat* heat;
GCodes* gCodes;
Webserver* webserver;
Tool* toolList;
Tool* currentTool;
uint16_t ticksInSpinState;
uint8_t spinState;
bool debug;
float fastLoop, slowLoop;
float lastTime;
bool stopped;
bool active;
bool resetting;
uint16_t activeExtruders;
uint16_t activeHeaters;
};
inline Platform* RepRap::GetPlatform() const { return platform; }
inline Move* RepRap::GetMove() const { return move; }
inline Heat* RepRap::GetHeat() const { return heat; }
inline GCodes* RepRap::GetGCodes() const { return gCodes; }
inline Network* RepRap::GetNetwork() const { return network; }
inline Webserver* RepRap::GetWebserver() const { return webserver; }
inline bool RepRap::Debug() const { return debug; }
inline Tool* RepRap::GetCurrentTool() { return currentTool; }
inline uint16_t RepRap::GetExtrudersInUse() const { return activeExtruders; }
inline uint16_t RepRap::GetHeatersInUse() const { return activeHeaters; }
inline void RepRap::SetDebug(bool d)
{
debug = d;
if(debug)
{
platform->Message(BOTH_MESSAGE, "Debugging enabled\n");
}
else
{
platform->Message(WEB_MESSAGE, "");
}
}
inline void RepRap::Interrupt() { move->Interrupt(); }
inline bool RepRap::IsStopped() const { return stopped; }
inline uint16_t RepRap::GetTicksInSpinState() const { return ticksInSpinState; }
#endif