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; }
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; }
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; }