# offset service
## flowchart

## 使用方式
``` python
#import pacakges
import requests
import random
import os
import datetime
#input parameters
job_type = 'PCB' # or 'ST'
feature_name = 'tf_fiducail'
step_size = (460, 406)
job_name = 'depp-test'
update_pos = [3.1, 5.1]
remove_pos = [3.1, 5.1] #or None
database = 'DEV' #or 'USER'
#取得錯位解 LIST #有feature_name 與 step_size的情況
band_info_list = get_band_pos_list(job_type,
feature_name,
step_size,
database='DEV')
#[[job_name, band_pos1, remove_pos1, date],
# [job_name, band_pos2, remove_pos2, date],
# [job_name, band_pos3, remove_pos3, date],...]
#取得錯位解 LIST #只有database的情況
#return 整份字典
main_band_pos_dict = get_band_pos_list(database='DEV')
#update band_pos
#若沒有執行filter band_pos,則不用填remove_pos
#反之,要填寫remove_pos,供程式排除重複的band_pos
update_band_pos(job_type,
feature_name,
job_name,
step_size,pos,
remove_pos=None,
database = 'DEV')
```
## function
```python=
def update_band_pos(job_type,
feature_name,
job_name,
step_size,
update_pos,
remove_pos = None,
database = 'DEV'):
'''
input:
job_type : str -> 'PCB' or 'ST'
feature_name : str
step_size : (int, int) -> accept only mm
job_name : str
update_pos : [float, float]
remove_pos : [float, float]
database : str -> default
#feature_info_list : [job_name, update_pos, remove_pos, date]:'DEV', optional : 'USER'
'''
date = str(datetime.datetime.now().strftime("%Y-%m-%d"))
feature_info_list = [job_name, update_pos, remove_pos, date]
data = {'database' : database,
'job_type' : job_type,
'feature_name' : feature_name,
'step_size' : str(step_size),
'feature_info_list' : str(feature_info_list)}
#update
r = requests.post("http://10.12.20.149:3113/cam/call_update_band_pos",
data = {"data": str(data)} )
main_feature_pos_dict = eval(r.text)
return main_feature_pos_dict
def get_band_pos_list(job_type,
feature_name = '',
step_size = '',
database = 'DEV'):
'''
input:
job_type : str -> 'PCB' or 'ST'
feature_name : str
step_size : (int, int) -> accept only mm
database : str -> default :'DEV', optional : 'USER'
output:
band_info_list : [band_info, band_info...]
band_info : [job_name, band_pos, remove_pos, date -> str]
'''
data = {'database' : database,
'job_type' : job_type,
'feature_name' : feature_name,
'step_size' : str(step_size)}
#get band position
r = requests.post("http://10.12.20.149:3113/cam/call_get_band_pos_list",
data = {"data": str(data) } )
band_info_list = eval(r.text)
return band_info_list
```