using Autofac; using Common.Util; using Entity.DbModel.Station; using HybirdFrameworkCore.Autofac; using HybirdFrameworkCore.Autofac.Attribute; using Repository.Station; using log4net; namespace Service.Sound.SoundClient; [Scope] public class SoundClient { private static readonly ILog Log = LogManager.GetLogger(typeof(SoundClient)); EquipInfoRepository equipInfoRepository = AppInfo.Container.Resolve(); EquipNetInfoRepository netInfoRepository = AppInfo.Container.Resolve(); public static string soundIp = ""; /// /// //0-播放停止状态 //1-播放中 //2-播放暂停状态 /// private uint m_nPlayStatus = 3; public string SoundConn() { //设备编码 2 - 音响IP "192.168.3.77" EquipInfo equipInfo = equipInfoRepository.QueryByClause(u => u.Code == "2"); if (equipInfo != null) { EquipNetInfo equipNetInfo = netInfoRepository.QueryByClause(u => u.Code == equipInfo.Code); if (equipNetInfo != null) { NAudioClientDll.na_add_play_device(0, 0, equipNetInfo.NetAddr); IntPtr[] devlist = new IntPtr[512]; int devcnt = 0; NAudioClientDll.na_get_play_device(0, 0, devlist, ref devcnt); if (devcnt == 1) { soundIp = equipNetInfo.NetAddr; Log.Info("音响设备" + equipNetInfo.NetAddr + "添加成功"); return "音响设备" + equipNetInfo.NetAddr + "添加成功"; } else { Log.Info("音响设备" + equipNetInfo.NetAddr + "添加失败"); return "音响设备" + equipNetInfo.NetAddr + "添加失败"; } } return "数据库设备IP不存在"; } return "数据库设备信息不存在"; } /// /// 设置音量 /// /// 0-100 public void ControlSound(byte soundValue) { if (soundIp != "") { //更新播放设备音量 NAudioClientDll.na_set_device_volume(soundIp, soundValue); } } /// /// 播放声音文件 /// /// mp3 文件所在路径 /// 例如:"D:\\Desktop\\Sound\\电池拆卸中请稍后.mp3" public bool SoundPlay( SoundEnum soundEnum) { /*int result = NAudioClientDll.na_start_play_1(0, 0, fileLoad, 10); if (NAudioClientDll.RET_SUCCESS == result) return true; return false;*/ string url = "http://127.0.0.1:5039/" + (Convert.ToByte(soundEnum)).ToString(); HttpUtil.SendGetRequest(url); return true; } /// /// 当前设备是否允许播放 /// /// public bool EnableSoundPlay() { NAudioClientDll.na_get_play_status(0, 0, ref m_nPlayStatus); //当前 播放状态:播放中 if (m_nPlayStatus == NAudioClientDll.PS_PLAYING) return false; return true; } } public enum SoundEnum { music01=1,//车辆已到位,请停车 music02,//请将车辆行驶到指定位置 music03,//请按屏幕顺序操作车辆; music04,//请尽快将车辆行驶到指定位置 music05,//认证失败,请联系站务人员 music06,//车站通讯故障,请联系站务 music07,//换电站模式错误,请联系站务 music08,//车辆型号不适配本站,请联系站务了解更多信息 music09,//车辆不符合换电要求,请驶离 music10,//请按屏幕顺序操作车辆; music11,//无可用电池,请联系站务 music12,//请拉起手刹 music13,//请熄火车辆; music14,//设备准备中,请勿操作车辆 music15,//请按下启动按钮,开始换电 music16,//开始换电 music17,//请使用手机APP,启动换电 music18,//设备不允许换电,请联系站务 music19,//车机不允许换电,请联系站务 music20,//开始换电,请勿操作车辆 music21,//定位电池失败,请联系站务人员 music22,//电池定位不成功,请联系站务确认精度 music23,//车辆角度过大,请将车辆停正 music24,//电池定位结束,请联系站务确认精度 music25,//自动解锁失败,请联系站务手动解锁 music26,//电池解锁中,请稍候 music27,//电池拆卸完成 music28,//电池搬运中,请稍候 music29,//电池安装中,请稍候 music30,//自动上锁失败,请联系站务手动上锁 music31,//电池自动上锁中,请稍候 music32,//换电暂停,请联系站务确认锁状态 music33,//自检失败,请联系站务人员 music34,//换电完成,祝你一路顺风 music35,//突发紧急状况,请尽快撤离 music36,//换电暂停,请联系站务人员 music37,//您已进入危险区域,请尽快离开 music38,//车辆高压异常,请熄火车辆 music39,//车站通讯故障,请联系站务 music41=41,//[Info("欢迎光临换电站!(正在营业)","欢迎光临换电站!,本站正在营业中")]WelcomeInfo=1, music42,//[Info("标签读写失败", "标签读写失败")] ErrorReadRfid , music43,//[Info("车辆连接失败", "车辆连接失败,请联系站务人员")] ErrorTBoxConn , music44,//[Info("云端校验失败", "云端校验失败,请联系站务人员")] ErrorCloudCheck , music45,//[Info("车辆已到位", "车辆已到位")] InfoCarInPosition , music46,//[Info("请熄火挂空挡拉手刹", "请熄火挂空挡拉手刹")] ErrorCarInPositionTimeout, music47,//[Info("云平台下发换电失败", "云平台下发换电超时")] CloudSendSwapError , music48,//[Info("解锁车辆失败", "解锁车辆失败")] ErrUnLockCar , music49,//[Info("选包失败,请驶离", "选包失败,请驶离")] ErrorSelectPack , music50,//[Info("通道拍照定位失败,请在三分钟内重新调整车辆位置", "通道拍照定位失败,请在三分钟内重新调整车辆位置")]ErrChannelStatus=10, music51,//[Info("电池拆卸中,请稍后", "电池拆卸中,请稍后")] InfoUnPack , music52,//[Info("电池安装中,请稍后", "电池安装中,请稍后")] InfoPack , music53,//[Info("电池包已安装完成", "电池包已安装完成")] InfoPackFinish , music54,//[Info("航车已回归安全位置", "航车已回归安全位置")] InfoToSafePosition , music55,//[Info("换电已完成,请驶离", "换电已完成,请驶离")] InfoCarLeave , music56,//[Info("换电失败,请驶离", "换电失败,请驶离")] ErrInfoCarLeave , music57,//[Info("电池入仓中,请稍后", "电池入仓中,请稍后")] InfoOldBatteryCarryIn , music58,//[Info("电池出仓中,请稍后", "电池出仓中,请稍后")] InfoNewBatteryCarryOut , music59,//[Info("车辆上锁失败", "车辆上锁失败")] ErrLockCar , music60,//[Info("通道的电池仓无可用换电电池","通道的电池仓无可用换电电池")] NoBatteryErr, music61,//[Info("结束充电电池数量不足","通道的电池仓无可用换电电池")] LessOfFinishChargingErr, music62,//[Info("空仓数量不足","通道的电池仓无可用换电电池")] LessOfEmptyBinErr, music63,//[Info("符合soc限制数量不足","通道的电池仓无可用换电电池")] LessOfSocErr, music64,//[Info("结束充电大于3分钟的数量不足","通道的电池仓无可用换电电池")] LessOf3MinuteErr, music65,//[Info("换电站处于手动模式,不能自动换电","换电站处于手动模式,不能自动换电")] InfoStationModel, music66,//[Info("换电站处于本地模式,不能远程换电","换电站处于本地模式,不能远程换电")] InfoStationModelRemoteErr, music67,//[Info("车辆驶入","车辆驶入")] CarInInfo, music68,//[Info("换电任务启动","换电任务启动")] StartSwapInfo, music69,//[Info("航车拍照中,请稍后","航车拍照中,请稍后")] CarTakePhotoInfo, music70,//[Info("启动换电失败,请联系站务人员","启动换电失败,请联系站务人员")] ErrStartSwap, music71,//即将进行消防移仓,请通道车辆驶离 music72,//电池移仓中// music73,//消防移仓中 music74,//开始读取标签失败 music75, music76, music77, music78, music79, music80, music81, music82, music83, music84, music85, music86, music87, music88, music89, music90, music91, music92, music93, /* */ }