Example #1
0
 public function set()
 {
     $parameter = NULL;
     $cr = 0;
     $this->load->helper(array('printerstate', 'zimapi', 'slicer'));
     $parameter = $this->input->get('p');
     //return false if missing
     if ($parameter) {
         switch ($parameter) {
             case PRINTERSTATE_PRM_EXTRUDER:
                 $api_prm = $this->input->get('v');
                 if ($api_prm) {
                     // refuse getting data not existed for mono extruder
                     if ($api_prm == 'l' && $this->config->item('nb_extruder') == 1) {
                         $cr = ERROR_WRONG_PRM;
                     } else {
                         $cr = PrinterState_setExtruder($api_prm);
                     }
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case PRINTERSTATE_PRM_TEMPER:
                 // check which temperature we want
                 $val_temper = 0;
                 $api_prm = NULL;
                 $val_temper = $this->input->get('v');
                 $has_e = $this->input->get('e');
                 $has_h = $this->input->get('h');
                 if ($has_e === FALSE && $has_h === FALSE) {
                     $cr = ERROR_MISS_PRM;
                 } else {
                     if (!($has_e === FALSE) && !($has_h === FALSE)) {
                         $cr = ERROR_WRONG_PRM;
                     } else {
                         $api_prm = $has_e === FALSE ? 'h' : 'e';
                         $cr = PrinterState_setTemperature($val_temper, $api_prm);
                     }
                 }
                 break;
             case PRINTERSTATE_PRM_ACCELERATION:
                 $val_acceleration = (int) $this->input->get('v');
                 if ($val_acceleration) {
                     $cr = PrinterState_setAcceleration($val_acceleration);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case PRINTERSTATE_PRM_SPEED_MOVE:
             case PRINTERSTATE_PRM_SPEED_EXTRUDE:
                 $val_speed = (int) $this->input->get('v');
                 if ($val_speed) {
                     $cr = PrinterState_setSpeed($val_speed);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case PRINTERSTATE_PRM_COLDEXTRUSION:
                 $this->_return_under_construction();
                 return;
                 break;
             case PRINTERSTATE_PRM_STRIPLED:
                 $status_set = $this->input->get('v');
                 if ($status_set) {
                     $cr = PrinterState_setStripLed($status_set);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case PRINTERSTATE_PRM_MOTOR_OFF:
                 $status_set = $this->input->get('v');
                 if ($status_set == 'off') {
                     $cr = PrinterState_disableSteppers();
                 } else {
                     if ($status_set) {
                         $cr = ERROR_WRONG_PRM;
                     } else {
                         $cr = ERROR_MISS_PRM;
                     }
                 }
                 break;
             case PRINTERSTATE_PRM_HEADLED:
                 $status_set = $this->input->get('v');
                 if ($status_set) {
                     $cr = PrinterState_setHeadLed($status_set);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case PRINTERSTATE_PRM_OFFSET:
                 $axis = $this->input->get('axis');
                 $val_offset = $this->input->get('adjustment');
                 if ($axis && $val_offset !== FALSE) {
                     $cr = PrinterState_setOffset(array($axis => $val_offset));
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case ZIMAPI_PRM_PASSWD:
                 $old_password = $this->input->get('o');
                 $password = $this->input->get('v');
                 if (ZimAPI_checkCameraPassword($old_password)) {
                     if (ZimAPI_setCameraPassword($password)) {
                         $cr = ERROR_OK;
                     } else {
                         $cr = ERROR_INTERNAL;
                     }
                 } else {
                     $cr = ERROR_WRONG_PWD;
                 }
                 break;
             case ZIMAPI_PRM_VIDEO_MODE:
                 $set_status = $this->input->get('v');
                 $password = $this->input->get('s');
                 $parameter = $this->input->get('m');
                 if (!ZimAPI_checkCameraPassword($password)) {
                     $cr = ERROR_WRONG_PWD;
                     break;
                 }
                 if ($set_status && $set_status == 'off') {
                     if (ZimAPI_cameraOff()) {
                         $cr = ERROR_OK;
                     } else {
                         $cr = ERROR_INTERNAL;
                     }
                 } else {
                     if ($set_status && $set_status == 'on') {
                         // temporary change - jump out of verification if we have no parameter 20140811
                         if (!$parameter) {
                             $parameter = ZIMAPI_PRM_CAMERA_PRINTSTART;
                         }
                         if (ZimAPI_cameraOn($parameter)) {
                             $cr = ERROR_OK;
                         } else {
                             $cr = ERROR_INTERNAL;
                         }
                         // 						}
                         // 						else {
                         // 							$cr = ERROR_MISS_PRM;
                         // 						}
                     } else {
                         if ($set_status) {
                             $cr = ERROR_WRONG_PRM;
                         } else {
                             $cr = ERROR_MISS_PRM;
                         }
                     }
                 }
                 break;
             case ZIMAPI_PRM_PRESET:
                 $id_preset = $this->input->get('id');
                 if ($id_preset) {
                     $cr = ZimAPI_setPreset($id_preset);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case SLICER_PRM_PRM:
                 $density = $this->input->get('density');
                 $skirt = $this->input->get('skirt');
                 $raft = $this->input->get('raft');
                 $support = $this->input->get('support');
                 $array_setting = array();
                 if ($density !== FALSE) {
                     $density = (int) $density / 100;
                     if ($density <= 0 || $density >= 1) {
                         $cr = ERROR_MISS_PRM;
                         break;
                     }
                     $array_setting['fill_density'] = $density;
                 }
                 if ($skirt !== FALSE) {
                     $array_setting['skirts'] = (int) $skirt == 1 ? 1 : 0;
                 }
                 if ($raft !== FALSE) {
                     $array_setting['raft_layers'] = (int) $raft == 1 ? 1 : 0;
                 }
                 if ($support !== FALSE) {
                     $array_setting['support_material'] = (int) $support == 1 ? 1 : 0;
                 }
                 if (count($array_setting) == 0) {
                     $cr = ERROR_MISS_PRM;
                 } else {
                     $cr = Slicer_changeParameter($array_setting);
                 }
                 break;
             case ZIMAPI_PRM_SSO_NAME:
                 $name = $this->input->get('name');
                 if ($name) {
                     $cr = ZimAPI_setPrinterSSOName($name);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case ZIMAPI_PRM_UPGRADE:
                 $status_set = $this->input->get('v');
                 $profile = $this->input->get('profile');
                 if ($status_set) {
                     $cr = ZimAPI_setUpgradeMode($status_set, $profile);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case ZIMAPI_PRM_PROXY:
                 $status_set = $this->input->get('v');
                 if ($status_set) {
                     $cr = ZimAPI_setTromboning($status_set);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case ZIMAPI_PRM_SSH:
                 $status_set = $this->input->get('v');
                 if ($status_set) {
                     $cr = ZimAPI_setSSH($status_set);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             case ZIMAPI_PRM_STATS:
                 $status_set = $this->input->get('v');
                 if ($status_set) {
                     $cr = ZimAPI_setStatistic($status_set);
                 } else {
                     $cr = ERROR_MISS_PRM;
                 }
                 break;
             default:
                 $cr = ERROR_WRONG_PRM;
                 break;
         }
     } else {
         $cr = ERROR_MISS_PRM;
     }
     $this->_return_cr($cr);
     return;
 }
Example #2
0
function ZimAPI_initialFile()
{
    global $CFG;
    $setting_fullpath = $CFG->config['conf'] . ZIMAPI_FILENAME_SOFTWARE;
    if (file_exists($setting_fullpath)) {
        return TRUE;
    } else {
        // prepare data array
        $cr = 0;
        $array_preset = ZimAPI_getPresetListAsArray();
        $data_json = array(ZIMAPI_TITLE_VERSION => '1.0', ZIMAPI_TITLE_PASSWD => md5(''), ZIMAPI_TITLE_PRESET => NULL);
        // write json file
        $fp = fopen($setting_fullpath, 'w');
        if ($fp) {
            fwrite($fp, json_encode($data_json));
            fclose($fp);
            chmod($setting_fullpath, 0777);
        } else {
            return FALSE;
        }
        $cr = ZimAPI_setPreset($array_preset[0][ZIMAPI_TITLE_PRESET_ID]);
        if ($cr != ERROR_OK) {
            unlink($setting_fullpath);
            return FALSE;
        }
    }
    return TRUE;
}
Example #3
0
 function slice_model_ajax()
 {
     $cr = 0;
     $array_cartridge = array();
     $display = NULL;
     $id_preset = $this->input->get('id');
     // 		$density = $this->input->get('density');
     // 		$skirt = $this->input->get('skirt');
     // 		$raft = $this->input->get('raft');
     // 		$support = $this->input->get('support');
     $heat_bed = $this->config->item('heat_bed') && (int) $this->input->get('hb') > 0;
     $array_setting = array();
     $custom_change = FALSE;
     $this->load->helper('slicer');
     // set and load preset into slicer
     if ($id_preset) {
         if ($id_preset == 'previous') {
             $cr = ZimAPI_getPreset($id_preset);
         } else {
             $cr = ZimAPI_setPreset($id_preset);
         }
     } else {
         $cr = ERROR_MISS_PRM;
     }
     if ($cr == ERROR_OK) {
         $cr = Slicer_reloadPreset();
     }
     // load 4 extra parameters
     //TODO finish me (syntax in comment need be changed to function)
     // 		if ($density !== FALSE) {
     // 			if (FALSE == strpos('%', $density)) {
     // 				$density = (float)$density;
     // 				if ($density <= 0 || $density >= 1) {
     // 					$cr = ERROR_MISS_PRM;
     // 					break;
     // 				}
     // 			}
     // 			$array_setting['fill_density'] = $density;
     // 		}
     // 		if ($skirt !== FALSE) {
     // 			$array_setting['skirts'] = ((int)$skirt == 1) ? 1 : 0;
     // 		}
     // 		if ($raft !== FALSE) {
     // 			$array_setting['raft_layers'] = ((int)$raft == 1) ? 1 : 0;
     // 		}
     // 		if ($support !== FALSE) {
     // 			$array_setting['support_material'] = ((int)$support == 1) ? 1 : 0;
     // 		}
     // 		if (count($array_setting) == 0) {
     // 			$cr = ERROR_MISS_PRM;
     // 		}
     // 		else if ($cr == ERROR_OK) {
     // 			$cr = Slicer_changeParameter($array_setting);
     // 		}
     // check platform and filament present (do not check filament quantity)
     if ($cr == ERROR_OK) {
         $cr = Slicer_checkPlatformColor($array_cartridge, $custom_change);
     }
     if ($cr == ERROR_OK) {
         $cr = Slicer_changeTemperByCartridge($array_cartridge, $heat_bed);
     }
     // start slice command after checking filament
     if ($cr == ERROR_OK) {
         // we prefer to slice remotely except modified AMF
         if ($this->config->item('simulator')) {
             $custom_change = TRUE;
             // force local slicing for simulator
         }
         $cr = Slicer_slice(!$custom_change);
     }
     $display = $cr . " " . t(MyERRMSG($cr));
     $this->output->set_status_header($cr, $display);
     $this->output->set_content_type('txt_u');
     $this->load->library('parser');
     $this->parser->parse('plaintxt', array('display' => $display));
     //optional
     return;
 }