sql_sort = 'ChNumber desc'; $list->sql_filter = function($search,&$cond){ // 如果是从大棚点击查看的 $id = I('get.id'); $where = array('FarmlandId' => $id); $device_ids = M('dpsb_chgroup')->field('DeviceId,Chgroup')->where($where)->select(); if( $device_ids ){ $query_sql = ''; for($i=0; $irow_filter = function(&$row) use ($list){ $type = new \Zndp\Device\ChannelType; $typeinfo = $type->getTypeInfo($row['ChType']); $row['ChannelType_text'] = $typeinfo[0].'('.$typeinfo[1].')'; $row['ChannelGroup_text'] = '通道组'.($row['ChGroup']+1); if($row['IsUse'] == 0){ $row['IsUse_text'] = "未使用"; }else{ $row['IsUse_text'] = "使用"; } if($row['ChMan'] == 1){ $row['ChMan_text'] = "手动"; }else{ $row['ChMan_text'] = "自动"; } $row['DeviceId'] = M('dpsb_device')->where(array('ID'=>$row['DeviceId']))->getField('WorkUnitName'); // 传感器名称可编辑 $row['DisplayName'] = $list->renderXEditableInput('编辑传感器名称',$row,'DisplayName'); }; $list->toolbar_filter = function(&$button){ $deviceid = I('get.id'); if($button['icon'] == 'add'){ $button['url'] .= '&deviceid=' .$deviceid; //修改按钮网址 } }; $list->display($this); } function sys_addedit( ){ $form = new \Jiaruan\LigerIframeForm(); $form->before_add = function(&$data){ $data['DeviceId'] = I('get.deviceid'); //检测IMEI是否重复 $chnumber = trim($data['ChNumber']); $channel_info = M('dpsb_channel')->where(array('ChNumber'=>$chnumber))->find(); if($channel_info){ json_fail('该通道已存在,请重新输入!'); } //判断通道组中存在某一通道类型之后不能再重复添加 $ghannelgroup = trim($data['ChGroup']); $channel_info = M('dpsb_channel')->where(array('ChGroup'=>$ghannelgroup))->find(); if($data['ChType'] == $channel_info['ChType']){ json_fail('该通道类型已存在,请重新输入!'); } }; $form->before_save = function(&$data){ $id = I('get.id'); $chnumber = trim($data['ChNumber']); $cond = array('ID'=>$id); $userinfo = M('dpsb_channel')->where($cond)->field('ChNumber')->find(); $channel_info = M('dpsb_channel')->where(array('ChNumber'=>$chnumber))->find(); if($chnumber != $userinfo['ChNumber'] && $channel_info){ json_fail('该通道已存在,请重新输入!'); } }; $form->form_filter = function(&$form){ //显示下拉数据 $type = new \Zndp\Device\ChannelType; $channeltype = $type->getTypeOptions(); $form['fields']['ChType']['editor'] = array('options'=>$channeltype); }; $form->display($this); } public function sys_del( ){ if (IS_AJAX) { $channel_id = I('get.id'); if ( empty($channel_id)) { json_fail('设备id不能为空'); } if(M('dpsb_channel')->where(array( 'ID' => $channel_id ))->delete() === false){ json_fail('删除失败',''); } json_success('删除成功',''); } } public function test( ){ var_dump(time()); } function send( ){ $form = new \Jiaruan\LigerIframeForm(); $form->before_save = function(&$data){ //$addr = M('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiSendControl", "Addr" => $data['DeviceAddr'], //设备addr "channelNumber" => $data['ChNumber'], //通道编号 "status" => $data['Status'], ); $res = $socket->send(json_encode($cmd)); // var_dump($res); if($res['success']){ json_success('下发成功'); }else{ json_fail($res['message']); } }; $form->before_display = function(&$data){ $data['DeviceId_text'] = MM('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('WorkUnitName'); $data['DeviceAddr'] = MM('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr'); }; $form->display($this); } public function sys_start( ){ if(IS_AJAX){ $id = I('get.id'); if ( empty($id)) { json_fail('通道id不能为空'); } $device_id = M('dpsb_channel')->where(array('ID'=>$id))->getField('DeviceId'); $ch_number = M('dpsb_channel')->where(array('ID'=>$id))->getField('ChNumber'); $addr = M('dpsb_device')->where(array('ID'=>$device_id))->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiSendControl", "Addr" => $addr, //设备addr "channelNumber" => $ch_number, //通道编号 "status" => 1, ); $res = $socket->send(json_encode($cmd)); if($res['success']){ json_success('下发成功'); }else{ json_fail($res['message']); } } } public function sys_close( ){ if(IS_AJAX){ $id = I('get.id'); if ( empty($id)) { json_fail('通道id不能为空'); } $device_id = M('dpsb_channel')->where(array('ID'=>$id))->getField('DeviceId'); $ch_number = M('dpsb_channel')->where(array('ID'=>$id))->getField('ChNumber'); $addr = M('dpsb_device')->where(array('ID'=>$device_id))->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiSendControl", "Addr" => $addr, //设备addr "channelNumber" => $ch_number, //通道编号 "status" => 2, ); $res = $socket->send(json_encode($cmd)); if($res['success']){ json_success('下发成功'); }else{ json_fail($res['message']); } } } public function sys_stop( ){ if(IS_AJAX){ $id = I('get.id'); if ( empty($id)) { json_fail('通道id不能为空'); } $device_id = M('dpsb_channel')->where(array('ID'=>$id))->getField('DeviceId'); $ch_number = M('dpsb_channel')->where(array('ID'=>$id))->getField('ChNumber'); $addr = M('dpsb_device')->where(array('ID'=>$device_id))->getField('DeviceAddr'); $host = '127.0.0.1'; $port = 10240; $socket = new Jms\Network\TcpClient($host,$port); $cmd = array( "method" => "apiSendControl", "Addr" => $addr, //设备addr "channelNumber" => $ch_number, //通道编号 "status" => 0, ); $res = $socket->send(json_encode($cmd)); if($res['success']){ json_success('下发成功'); }else{ json_fail($res['message']); } } } }