Music.c
3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "Music.h"
#include "includes.h"
#include "all_value.h"
#include "tcp_client_demo.h"
u8 Music_No=31,Music_OldNo;
u8 F_Music_Voice;
void Music_Send(void)//`发送音乐CAN控制指令函数
{
// u8 Music_Vol=26;
CanTxMsg tx_message1;
if((F_Music_Voice>26)|(F_Music_Voice==0))F_Music_Voice=26;
tx_message1.IDE = CAN_ID_EXT; //拓展帧
tx_message1.RTR = CAN_RTR_DATA; //数据帧
tx_message1.DLC = 0x08; //帧长度为8
tx_message1.StdId = 0; //帧ID为传入参数的CAN_ID
tx_message1.ExtId = 0x300;
tx_message1.Data[0] = 0x01;
tx_message1.Data[1] = 0x51;
tx_message1.Data[2] = Music_No; //音乐号码
tx_message1.Data[3] = F_Music_Voice; //音量
tx_message1.Data[4] =tx_message1.Data[5]=0;
tx_message1.Data[6] =XOR_Crc(&(tx_message1.Data[0]),6,0);
tx_message1.Data[7] = 0x02;
CAN_Transmit(CAN1,&tx_message1);
OSTimeDly(1);
}
void Music_Choose(void)//音乐选择函数
{
if((SysKey==89)&&(VaIndexDW_R(&Touch_Contr,15))){;}
else
{
if ( Read_ErrID(14) )Music_No=9;//MusicID=9 ,防撞触发;
else if (Read_ErrID(20) )Music_No=2;//MusicID=2 ,急停报错;
else if (Read_ErrID(28) )Music_No=3;//MusicID=3 ,触边报错;
else if (Read_ErrID(17)|Read_ErrID(40)|Read_ErrID(41)|Read_ErrID(42)|Read_ErrID(43)|Read_ErrID(30) )Music_No=4;//MusicID=4 ,电机报错;
else if (Read_ErrID(6) )Music_No=10;//MusicID=10 ,下视觉未检测到二维码;
else if (Read_ErrID(19) )Music_No=11;//MusicID=11 ,充电异常;
else if (Read_ErrID(32) )Music_No=15;//MusicID=15 ,温度异常;
else if (Read_ErrID(56) )Music_No=13;//MusicID=13;未检测到货架
else if ( (VaIndexW_R(&NodeOnLine,13)==0)&&(Workmode==AutoMode) )Music_No=8;//MusicID=8 ,设备未连上上位机;
else if (AGV.Line_Step>2&&AGV.Line_Step<100)Music_No=31;//MusicID=31 ,设备处于行走任务中,正在行走(音乐);
else if (AGV.Load_Step>2&&AGV.Load_Step<100)Music_No=28;//MusicID=46 ,设备处于复位任务中,正在对中,请注意;
else if ((AGV.RotationSlam_Step>2&&AGV.RotationSlam_Step<100)|(AGV.RotationCCD_Step>2&&AGV.RotationCCD_Step<100))Music_No=33;//MusicID=33 ,设备处于旋转任务中;
else if ((Motor[0].PcToM.Speed>0)&&AGV.UpDown_Step>1&&AGV.UpDown_Step<100)Music_No=61;//MusicID=61 ,设备处于上升任务中,正在上升,请注意;
else if (((Motor[0].PcToM.Speed<0)|Out_DownValve)&&AGV.UpDown_Step>1&&AGV.UpDown_Step<100)Music_No=62;//MusicID=62 ,设备处于下降任务中,正在下降,请注意;
else if (AGV.Charge_Step>1&&AGV.Charge_Step<100)
{ if(AGV.Type3_Ac==6)Music_No=71;//MusicID=71 ,设备处于充电任务中,正在后退,请注意;
else Music_No=81;//MusicID=81 ,设备处于取消充电任务中,正在行走,请注意;
}
else if(AGV.Conveyor_Step>2&&AGV.Conveyor_Step<100)
{
if( ((Unionu8_1.ConyUpTy%2)==1)|((Unionu8_2.ConyDownTy%2)==1))Music_No=93;//MusicID=93 ,设备处于滚筒出货任务中,正在出货,请注意;
else if(Unionu8_1.ConyUpTy|Unionu8_2.ConyDownTy)Music_No=91;//MusicID=91;设备处于滚筒取货任务中,正在取货,请注意
}
else if(VaIndexB_R(&AGV.OtheSta,6)&&(BatteryVa.Energy<25))Music_No=99;//提示低电量需充电
else Music_No=0;
}
}
u8 Tim5_Music2Nums;
void MusicData_Analysis(CanRxMsg*Message)//CAN音乐内容接收解析
{
// if ((Message->ExtId==0x301)&&(Message->Data[1]==0x52))Tim4_Music2Nums=0;//0x53表示无对应文件
if (Message->ExtId==0x301)Tim5_Music2Nums=0;//0x53表示无对应文件
}
u8 Tim4_Music1Nums;
void Music_Pro(void)//音乐程序
{
Music_Choose();
if( MusicSendEn&&(Electrify_Step==100))
{
if(Music_No!=Music_OldNo)
{ VaIndexB_W(&AGV.OtheSta1,6,1);
Tim4_Music1Nums=0;
Music_OldNo=Music_No;
}
if( (Tim4_Music1Nums>250) |(VaIndexB_R(&AGV.OtheSta1,6)&&(Tim4_Music1Nums>80) ))
{
Tim4_Music1Nums=0;
VaIndexB_W(&AGV.OtheSta1,6,0);
Music_Send();
}
}
if (Tim5_Music2Nums>4)VaIndexW_W(&NodeOnLine,6,0);
else VaIndexW_W(&NodeOnLine,6,1);
}