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>
<bShared>0</bShared>
</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>
@ -980,7 +992,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -992,7 +1004,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1004,7 +1016,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1016,7 +1028,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1028,7 +1040,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>48</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1040,7 +1052,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1052,7 +1064,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1064,7 +1076,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>51</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1076,7 +1088,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>52</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1088,7 +1100,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>53</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1100,7 +1112,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

5
app/MDK-ARM/app.uvprojx

@ -1230,6 +1230,11 @@
<FileType>8</FileType>
<FilePath>..\..\src\board\hardware.cpp</FilePath>
</File>
<File>
<FileName>lncubator_rotating_control_service.cpp</FileName>
<FileType>8</FileType>
<FilePath>..\..\src\lncubator_rotating_control_service.cpp</FilePath>
</File>
</Files>
</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();
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; }
@ -105,7 +105,7 @@ void LncubatorRotatingControlService::periodicJob() {
}
}
void LncubatorRotatingControlService::TMC4361A_onEvent(uint32_t event) {
if (event & TMC4361A::event_mask_t::ktarget_reached) {
if (event & TMC4361A::ktarget_reached) {
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_maxVelocity = 0;
int32_t m_maxVelocity;
bool m_workfinished;
bool m_homeKeyTriggered;
int m_jobStep;

37
src/umain.cpp

@ -11,15 +11,25 @@
#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\tmp117\tmp117.hpp"
#include "lncubator_rotating_control_service.hpp"
#include "lncubator_temperature_control_service.hpp"
#define TAG "main"
#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 std;
class Main : public HardwareListener, //
public IflytopCanProtocolStackProcesserListener {
public IflytopCanProtocolStackProcesserListener,
public LncubatorRotatingControlServiceListener {
public:
Hardware m_hardware;
@ -28,6 +38,7 @@ class Main : public HardwareListener, //
//
IflytopCanProtocolStackProcesser m_protocolStack;
LncubatorTemperatureControlService m_tempCtrl;
LncubatorRotatingControlService m_rotatingCtrl;
IflytopMicroOS *os;
Main() {}
@ -36,6 +47,11 @@ class Main : public HardwareListener, //
void initializeIflytopCanProtocolStackProcesser();
void updateRegList();
virtual void LncubatorRotatingControlService_onException(exception_id_t exception);
virtual void LncubatorRotatingControlService_onMoveToHomeJobFinished();
virtual void LncubatorRotatingControlService_onMoveSubPositionJobFinished();
virtual void LncubatorRotatingControlService_onMoveByJobFinished();
/*******************************************************************************
* override HardwareListener *
*******************************************************************************/
@ -51,7 +67,6 @@ class Main : public HardwareListener, //
virtual icps::error_t IflytopCanProtocolStack_onHostRegisterReadEvent( //
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);
}
#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() { //
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.hardwareinit();
// 初始化协议栈
initializeIflytopCanProtocolStackProcesser();
// 初始化温度控制器
m_tempCtrl.initialize(&m_hardware);
m_tempCtrl.setPidKp(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_KP));
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.setTargetTemperature(m_protocolStack.readRegValue(REG_TEMPERATURE_CTRL_TARGET_TEMPERATURE));
// 初始化转盘控制器
m_rotatingCtrl.initialize(&m_hardware);
m_rotatingCtrl.registerListener(this);
while (true) {
m_hardware.periodicJob();
updateRegList();

Loading…
Cancel
Save