Browse Source

update

master
zhaohe 2 years ago
parent
commit
3f1893a7de
  1. 58
      app/MDK-ARM/app.uvguix.h_zha
  2. 34
      app/MDK-ARM/app.uvoptx
  3. 5
      app/MDK-ARM/app.uvprojx
  4. 2
      dep/libiflytop_micro
  5. 4
      src/lncubator_rotating_control_service.cpp
  6. 2
      src/lncubator_rotating_control_service.hpp
  7. 37
      src/umain.cpp

58
app/MDK-ARM/app.uvguix.h_zha
File diff suppressed because it is too large
View File

34
app/MDK-ARM/app.uvoptx

@ -970,6 +970,18 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>43</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\src\lncubator_rotating_control_service.cpp</PathWithFileName>
<FilenameWithoutPath>lncubator_rotating_control_service.cpp</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -980,7 +992,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -992,7 +1004,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1004,7 +1016,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1016,7 +1028,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1028,7 +1040,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>48</FileNumber>
<FileType>8</FileType> <FileType>8</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1040,7 +1052,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1052,7 +1064,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1064,7 +1076,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>51</FileNumber>
<FileType>8</FileType> <FileType>8</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1076,7 +1088,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>52</FileNumber>
<FileType>8</FileType> <FileType>8</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1088,7 +1100,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>53</FileNumber>
<FileType>8</FileType> <FileType>8</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1100,7 +1112,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

5
app/MDK-ARM/app.uvprojx

@ -1230,6 +1230,11 @@
<FileType>8</FileType> <FileType>8</FileType>
<FilePath>..\..\src\board\hardware.cpp</FilePath> <FilePath>..\..\src\board\hardware.cpp</FilePath>
</File> </File>
<File>
<FileName>lncubator_rotating_control_service.cpp</FileName>
<FileType>8</FileType>
<FilePath>..\..\src\lncubator_rotating_control_service.cpp</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

2
dep/libiflytop_micro

@ -1 +1 @@
Subproject commit 97f99a0d5f562f7ee883b57908249e0d64dc9483
Subproject commit 0e0fbea74859e71d34d2ccf6169b0da763fb95a4

4
src/lncubator_rotating_control_service.cpp

@ -37,7 +37,7 @@ void LncubatorRotatingControlService::initialize(Hardware* hardware) { //
*/ */
m_motor->setMotorInPositionMode(); m_motor->setMotorInPositionMode();
hardware->registerListener(this); hardware->registerListener(this);
m_motor->registerListener(this, TMC4361A::event_mask_t::ktarget_reached);
m_motor->registerListener(this, TMC4361A::ktarget_reached);
} }
void LncubatorRotatingControlService::setVelocity(int32_t velocityMax) { m_maxVelocity = velocityMax; } void LncubatorRotatingControlService::setVelocity(int32_t velocityMax) { m_maxVelocity = velocityMax; }
@ -105,7 +105,7 @@ void LncubatorRotatingControlService::periodicJob() {
} }
} }
void LncubatorRotatingControlService::TMC4361A_onEvent(uint32_t event) { void LncubatorRotatingControlService::TMC4361A_onEvent(uint32_t event) {
if (event & TMC4361A::event_mask_t::ktarget_reached) {
if (event & TMC4361A::ktarget_reached) {
triggerEvent(kTMC4361AReachTargetEvent); triggerEvent(kTMC4361AReachTargetEvent);
} }
} }

2
src/lncubator_rotating_control_service.hpp

@ -70,7 +70,7 @@ class LncubatorRotatingControlService : public HardwareListener, //
int32_t m_outletPosition; // 出口对其第0个孵育船的位置,出口理论上应该是入口+ int32_t m_outletPosition; // 出口对其第0个孵育船的位置,出口理论上应该是入口+
// 便宜修正,第一个仓位中心距离零点的距离 // 便宜修正,第一个仓位中心距离零点的距离
int32_t m_maxVelocity = 0;
int32_t m_maxVelocity;
bool m_workfinished; bool m_workfinished;
bool m_homeKeyTriggered; bool m_homeKeyTriggered;
int m_jobStep; int m_jobStep;

37
src/umain.cpp

@ -11,15 +11,25 @@
#include "libiflytop_micro\stm32\basic\zsignal.hpp" #include "libiflytop_micro\stm32\basic\zsignal.hpp"
#include "libiflytop_micro\stm32\component\iflytop_can_slave_v1\iflytop_can_slave.hpp" #include "libiflytop_micro\stm32\component\iflytop_can_slave_v1\iflytop_can_slave.hpp"
#include "libiflytop_micro\stm32\component\tmp117\tmp117.hpp" #include "libiflytop_micro\stm32\component\tmp117\tmp117.hpp"
#include "lncubator_rotating_control_service.hpp"
#include "lncubator_temperature_control_service.hpp" #include "lncubator_temperature_control_service.hpp"
#define TAG "main" #define TAG "main"
#define ACTIVE_REG(reg, mask, initval) IflytopCanProtocolStackProcesser::activeReg(&IflytopCanStackConfig, reg, mask, initval) #define ACTIVE_REG(reg, mask, initval) IflytopCanProtocolStackProcesser::activeReg(&IflytopCanStackConfig, reg, mask, initval)
#define UPDATE_REG(reg, value, periodms) \
{ \
static uint32_t lastReportTicket = 0; \
if (m_hardware.hasPassedMS(lastReportTicket) > periodms) { \
lastReportTicket = m_hardware.getTicket(); \
m_protocolStack.writeRegValue(reg, value, false); \
} \
}
using namespace iflytop; using namespace iflytop;
using namespace std; using namespace std;
class Main : public HardwareListener, // class Main : public HardwareListener, //
public IflytopCanProtocolStackProcesserListener {
public IflytopCanProtocolStackProcesserListener,
public LncubatorRotatingControlServiceListener {
public: public:
Hardware m_hardware; Hardware m_hardware;
@ -28,6 +38,7 @@ class Main : public HardwareListener, //
// //
IflytopCanProtocolStackProcesser m_protocolStack; IflytopCanProtocolStackProcesser m_protocolStack;
LncubatorTemperatureControlService m_tempCtrl; LncubatorTemperatureControlService m_tempCtrl;
LncubatorRotatingControlService m_rotatingCtrl;
IflytopMicroOS *os; IflytopMicroOS *os;
Main() {} Main() {}
@ -36,6 +47,11 @@ class Main : public HardwareListener, //
void initializeIflytopCanProtocolStackProcesser(); void initializeIflytopCanProtocolStackProcesser();
void updateRegList(); void updateRegList();
virtual void LncubatorRotatingControlService_onException(exception_id_t exception);
virtual void LncubatorRotatingControlService_onMoveToHomeJobFinished();
virtual void LncubatorRotatingControlService_onMoveSubPositionJobFinished();
virtual void LncubatorRotatingControlService_onMoveByJobFinished();
/******************************************************************************* /*******************************************************************************
* override HardwareListener * * override HardwareListener *
*******************************************************************************/ *******************************************************************************/
@ -51,7 +67,6 @@ class Main : public HardwareListener, //
virtual icps::error_t IflytopCanProtocolStack_onHostRegisterReadEvent( // virtual icps::error_t IflytopCanProtocolStack_onHostRegisterReadEvent( //
icps::Reg_t *reg, int32_t &value); icps::Reg_t *reg, int32_t &value);
virtual void IflytopCanProtocolStack_onRegisterValueAutoReportEvent(icps::Reg_t *reg, int32_t &value); virtual void IflytopCanProtocolStack_onRegisterValueAutoReportEvent(icps::Reg_t *reg, int32_t &value);
}; };
@ -170,14 +185,10 @@ void Main::initializeIflytopCanProtocolStackProcesser() {
ACTIVE_REG(REG_TEMPERATURE_CTRL_SENSOR4_TEMPERATURE /* */, icps::kr, 0); ACTIVE_REG(REG_TEMPERATURE_CTRL_SENSOR4_TEMPERATURE /* */, icps::kr, 0);
} }
#define UPDATE_REG(reg, value, periodms) \
{ \
static uint32_t lastReportTicket = 0; \
if (m_hardware.hasPassedMS(lastReportTicket) > periodms) { \
lastReportTicket = m_hardware.getTicket(); \
m_protocolStack.writeRegValue(reg, value, false); \
} \
}
void Main::LncubatorRotatingControlService_onException(exception_id_t exception) {}
void Main::LncubatorRotatingControlService_onMoveToHomeJobFinished() {}
void Main::LncubatorRotatingControlService_onMoveSubPositionJobFinished() {}
void Main::LncubatorRotatingControlService_onMoveByJobFinished() {}
void Main::updateRegList() { // void Main::updateRegList() { //
UPDATE_REG(REG_TEMPERATURE_CTRL_MAIN_FAN_SPEED, m_hardware.fanReadState4(), 1000); UPDATE_REG(REG_TEMPERATURE_CTRL_MAIN_FAN_SPEED, m_hardware.fanReadState4(), 1000);
@ -198,8 +209,10 @@ void Main::main(int argc, char const *argv[]) {
m_hardware.registerListener(this); m_hardware.registerListener(this);
m_hardware.hardwareinit(); m_hardware.hardwareinit();
// 初始化协议栈
initializeIflytopCanProtocolStackProcesser(); initializeIflytopCanProtocolStackProcesser();
// 初始化温度控制器
m_tempCtrl.initialize(&m_hardware); m_tempCtrl.initialize(&m_hardware);
m_tempCtrl.setPidKp(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_KP)); m_tempCtrl.setPidKp(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_KP));
m_tempCtrl.setPidKi(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_KI)); m_tempCtrl.setPidKi(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_KI));
@ -207,6 +220,10 @@ void Main::main(int argc, char const *argv[]) {
m_tempCtrl.setPidErrorLimit(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_ERROR_LIMIT)); m_tempCtrl.setPidErrorLimit(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_ERROR_LIMIT));
m_tempCtrl.setTargetTemperature(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_TARGET_TEMPERATURE)); m_tempCtrl.setTargetTemperature(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_TARGET_TEMPERATURE));
// 初始化转盘控制器
m_rotatingCtrl.initialize(&m_hardware);
m_rotatingCtrl.registerListener(this);
while (true) { while (true) {
m_hardware.periodicJob(); m_hardware.periodicJob();
updateRegList(); updateRegList();

Loading…
Cancel
Save