aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c10
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/D_EMC2302_fan.h9
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c25
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c5
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c9
-rw-r--r--Software/Stubs Collection/stubs/newWHS/test_Fan_speed.cs59
9 files changed, 110 insertions, 14 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
index 8af9a8576..52d9980de 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c
@@ -227,12 +227,13 @@ void Trigger_SetWHSFanSpeed(uint8_t fan_id, uint8_t speed)
return;
}
-void Trigger_ReadWHSFanTacho (uint8_t fan_id)
+void Trigger_ReadWHSFanTacho (uint8_t fan_id, uint8_t* tacho_value)
{
I2C_ReadingMessageStruc I2C_ReadingMessage;
I2C_ReadingMessage.messageId = WHS_READ_FAN_TACHO;
I2C_ReadingMessage.parameter = fan_id;
+ I2C_ReadingMessage.parameter3 = tacho_value;
if (I2C_ReadingMsgQ != NULL)
Mailbox_post(I2C_ReadingMsgQ , &I2C_ReadingMessage, BIOS_NO_WAIT);
return;
@@ -424,10 +425,9 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
break;
case WHS_READ_FAN_TACHO:
- //todo
+ WHS_Read_fan_tach(I2C_ReadingMessage.parameter, I2C_ReadingMessage.parameter3);//todo
break;
-
case WHS_SET_VOLT_BLOWER_CONTROL:
WHS_Set_Volt_Blower_Control(I2C_ReadingMessage.parameter); //(fan_number, 0x20)
break;
@@ -460,6 +460,10 @@ void I2C_ReadingTask(UArg arg0, UArg arg1)
case WHS_I2C_EEPROM_READ: //
WHS_I2C_EEprom_Read(I2C_ReadingMessage.parameter, I2C_ReadingMessage.parameter2, I2C_ReadingMessage.parameter3);
break;
+
+
+//#endif
+
default:
break;
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h
index d3080e67e..16db6132f 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.h
@@ -22,7 +22,7 @@ void Trigger_WHS_I2C_EEprom_Read(uint32_t address, uint16_t size, uint8_t *p_dat
//void Trigger_WHS_set_fan_speed( fan_num, uint16_t fan_speed);
void Trigger_SetWHSFanSpeed (uint8_t fan_id, uint8_t speed);
-void Trigger_ReadWHSFanTacho (uint8_t fan_id); //todo
+void Trigger_ReadWHSFanTacho (uint8_t fan_id, uint8_t* tacho_value); //todo
void Trigger_WHS_PT100_Read_All(void);
void Trigger_ReadWHSPT100(uint8_t PT100_Id);
//void Trigger_WHS_Set_Volt_Blower_Control(uint16_t volt);
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/D_EMC2302_fan.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/D_EMC2302_fan.h
index a227e25d7..1882d9806 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/D_EMC2302_fan.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/D_EMC2302_fan.h
@@ -85,6 +85,15 @@
/******************************************************************************
* Typedefs
*******************************************************************************/
+typedef struct
+{
+ uint8_t i2s_bus;
+ uint8_t i2s_address;
+ uint8_t fan_speed[2];
+ uint8_t fan_tacho[2];
+}D_EMC2301Struct;
+extern D_EMC2301Struct fan_Struct_info;
+
/**
* @enum Configuration Bits
*/
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c
index 00a0c695f..73185725d 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.c
@@ -12,6 +12,8 @@
#include <Drivers/I2C_Communication/WHS_Card/IO_Extender_Ports_TCA9555/WHS_IO.h>
FAN_DRIVER_INFO Fan_Driver_Info[maxFAN-1];
+
+
#define FAN_SPEED_OFF 0x00
#define PUSH_PULL 1
uint8_t Fan_Mux_Channel = UNKNOWN;
@@ -227,6 +229,15 @@ bool WHS_Read_fan_ALERT(WHS_fan_num fan_number, uint16_t *fan_alert)
return status;
}
+void Set_All_WHS_Fans(uint8_t speed)
+{
+ WHS_fan_num fan_number=0;
+
+ for (fan_number = FAN1 ; fan_number < maxFAN; fan_number++)
+ {
+ Trigger_SetWHSFanSpeed(fan_number, speed);
+ }
+}
bool Test_WHS_Fan()
{
@@ -254,19 +265,19 @@ bool Test_WHS_Fan()
}
if (status == OK)
{
- WHS_set_fan_speed(fan_number, 0x20);
+ Trigger_SetWHSFanSpeed(fan_number, 0x20);
delayms(4000);
- WHS_Read_fan_tach(fan_number, fan_tacho);
+ Trigger_SetWHSFanSpeed(fan_number, fan_tacho);
delayms(1000);
- WHS_set_fan_speed(fan_number, 0x80);
+ Trigger_SetWHSFanSpeed(fan_number, 0x80);
delayms(4000);
- WHS_Read_fan_tach(fan_number, fan_tacho);
+ Trigger_SetWHSFanSpeed(fan_number, fan_tacho);
delayms(1000);
- WHS_set_fan_speed(fan_number, 0xFF);
+ Trigger_SetWHSFanSpeed(fan_number, 0xFF);
delayms(4000);
- WHS_set_fan_speed(fan_number, FAN_SPEED_OFF);
+ Trigger_SetWHSFanSpeed(fan_number, FAN_SPEED_OFF);
delayms(4000);
- WHS_Read_fan_tach(fan_number, fan_tacho);
+ Trigger_SetWHSFanSpeed(fan_number, fan_tacho);
delayms(1000);
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h
index 371f82023..3e8171df8 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/WHS_Card/D_EMC2302_Fan/WHS_Fan.h
@@ -105,6 +105,7 @@ bool init_WHS_fan(void);
bool WHS_set_fan_speed(WHS_fan_num fan_number, uint8_t fan_speed);
bool WHS_Read_fan_tach(WHS_fan_num fan_number, uint16_t *fan_tacho);
bool WHS_Read_fan_ALERT(WHS_fan_num fan_number, uint16_t *fan_alert);
+void Set_All_WHS_Fans(uint8_t speed);
//extern FAN_INFO Fan_Info;
extern D_EMC2302_READ D_EMC2302_Read;
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index 5c43799db..36726f7e4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -755,6 +755,11 @@ uint32_t MillisecLowLoop(uint32_t tick)
PressureCalc[Disp_i] = MillisecCalculatePressures(Disp_i);
}
}
+#ifdef Use_WHS_Card
+ Trigger_WHS_PT100_Read_All();
+ Trigger_WHS_MAX11614_Read_allADC();
+#endif
+
}
if (OneMinute_Tick)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index cead9b0e9..c31e21e23 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -280,8 +280,8 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
{
uint16_t fan_tacho = 0;
- WHS_set_fan_speed(((request->amount & 0x0000000F)-1) , request->delay & 0x000000FF);
- WHS_Read_fan_tach(((request->amount & 0x0000000F)-1), &fan_tacho);
+ Trigger_SetWHSFanSpeed(((request->amount & 0x0000000F)-1) , request->delay & 0x000000FF);
+// getWHSFanTacho(((request->amount & 0x0000000F)-1), &fan_tacho);
response.progress = fan_tacho;
response.has_progress = true;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
index db6bd7da1..c42546d1b 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/newWHS_init.c
@@ -52,7 +52,14 @@ bool newWHS_init(void)
// status |= Test_WHS_PT100_ADC();
// //test_9555();
// status |= WHS_I2C_EEprom_Write_Ch_shai_taest();
- return status;
+
+ Set_All_WHS_Fans(0xFF);
+ // delayms(4000);
+ //Trigger_SetWHSBlowerVoltage (0x0C00);
+
+
+
+return status;
}
diff --git a/Software/Stubs Collection/stubs/newWHS/test_Fan_speed.cs b/Software/Stubs Collection/stubs/newWHS/test_Fan_speed.cs
new file mode 100644
index 000000000..582a7f7e7
--- /dev/null
+++ b/Software/Stubs Collection/stubs/newWHS/test_Fan_speed.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+// Request ----
+// Int32 : Amount
+// Int32 : Delay
+
+// Response ----
+// Double : Progress
+
+//valv1
+var response1 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8501); //valv1_en=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response2 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8401);// valv1_dir=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response3 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8400);// valv1_dir=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response4 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8500);// valv1_disable
+
+
+// valve 2
+var response5 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8701); //valv2_en=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response6 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8601);// valv2_dir=1
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response7 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8600);// valv2_dir=0
+Thread.Sleep(5000); //Sleep for 10 milli.
+var response8 = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x8700); //valv2_disable
+
+//test pump
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0701);// pump on
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E9, 0x0700); // pump off
+
+// test Blower
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0000);// Blower OFF
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0400);// Blower 1.25v
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0800); // Blower 2.5v
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0C00);// Blower 3.77v
+Thread.Sleep(5000); //Sleep for 10 milli.
+stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3E8, 0x0FFF); // Blower 5.0v
+
+} \ No newline at end of file